]> git.ipfire.org Git - thirdparty/squid.git/blob - doc/release-notes/release-3.0.sgml
Typo.
[thirdparty/squid.git] / doc / release-notes / release-3.0.sgml
1 <!doctype linuxdoc system>
2 <article>
3 <title>Squid 3.0.RC1 release notes</title>
4 <author>Squid Developers</author>
5 <date>$Id: release-3.0.sgml,v 1.31 2007/12/14 05:34:16 amosjeffries Exp $</date>
6
7 <abstract>
8 This document contains the release notes for version 3.0 of Squid.
9 Squid is a WWW Cache application developed by the National Laboratory
10 for Applied Network Research and members of the Web Caching community.
11 </abstract>
12
13 <toc>
14
15 <sect>Notice
16 <p>
17 The Squid Team are pleased to announce the release of Squid-3.0.RC1 for pre-release testing.
18
19 This new release is available for download from <url url="http://www.squid-cache.org/Versions/v3/3.0/"> or the <url url="http://www.squid-cache.org/Mirrors/http-mirrors.html" name="mirrors">.
20
21 A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.
22 While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
23
24 We welcome feedback and bug reports. If you find a bug, please see <url url="http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d"> for how to submit a report with a stack trace.
25
26 <sect>Known issues
27 <p>
28 Although this release is deemed good enough for testing in many setups, please note the existence of <url url="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;target_milestone=3.0&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=bugs.bug_severity&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=" name="open bugs against Squid-3.0">.
29
30 <sect>Changes since earlier PRE releases of Squid-3.0
31 <p>
32 The 3.0 change history can be <url url="http://www.squid-cache.org/Versions/v3/3.0/changesets/" name="viewed here">.
33
34 <sect>Changes since Squid-2.6
35
36 <sect1>Major new features
37 <p>
38 Squid 3.0 represents a major rewrite of Squid and has a number of new features.
39
40 The most important of these are:
41
42 <itemize>
43 <item>Code converted to C++, with significant internal restructuring and rewrites.
44 <item>ICAP implementation (RFC 3507 and www.icap-forum.org)
45 <item>Edge Side Includes (ESI) implementation (www.esi.org)
46 </itemize>
47
48 Most user-facing changes are reflected in squid.conf (see below).
49
50 <sect2>Internet Content Adaptation Protocol (ICAP)
51
52 <p>Squid 3.0 supports ICAP/1.0. To enable ICAP support, use the --enable-icap-client ./configure option and icap_enable squid.conf option. You will also need to configure ICAP services in your squid.conf using icap_service, icap_class, and icap_access options. The following example instructs Squid to talk to two ICAP services, one for request and one for response adaptation:
53
54 <verb>
55 icap_enable on
56 icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
57 icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
58 icap_class class_req service_req
59 icap_class class_resp service_resp
60 icap_access class_req allow all
61 icap_access class_resp allow all
62 </verb>
63
64 <p>Please see squid.conf.default for more details about these and many other icap_* options.
65
66 <p>Squid supports pre-cache request and pre-cache response vectoring points. The following ICAP features are supported: message preview, 204 responses outside of preview, request satisfaction, X-Transfer-* negotiation, persistent ICAP connections, client IP/credentials sharing, and optional bypass of certain service failures.
67
68 <p>No more than one ICAP service can be applied to an HTTP message. In other words, chaining or load balancing multiple services is not yet supported.
69
70 <p>Proxy-directed data trickling and patience pages are not supported yet.
71
72 <p>Following ICAP requirements, Squid never performs HTTP message adaptation without a successful and fresh ICAP OPTIONS response on file. A REQMOD or RESPMOD request will not be sent to a configured ICAP service until Squid receives a valid OPTIONS response from that service. If a service malfunctions or goes down, Squid may stop talking to the service for a while. Several squid.conf options can be used to tune the failure bypass algorithm (e.g., icap_service_failure_limit and icap_service_revival_delay).
73
74 <p>The bypass parameter of the icap_service squid.conf option determines whether Squid will try to bypass service failures. Most connectivity and preview-stage failures can be bypassed.
75
76 <p>More information about ICAP can be found from the ICAP-forum website <url url="http://www.icap-forum.org">
77
78 <sect2>Edge Side Includes (ESI)
79
80 <p>ESI is an open specification of an markup language enabling reverse proxies
81 to perform some simple XML based processing, offloading the final page assembly from the webserver and similar tasks.
82
83 <p>More information about ESI can be found from the ESI website <url url="http://www.esi.org">
84
85 <sect1>2.6 features not found in Squid-3.0
86 <p>
87 Some of the features found in Squid-2.6 is not available in Squid-3.
88 Some has been dropped as they are not needed. Some has not yet been forward-ported to Squid-3 and may appear in a later release.
89
90 <itemize>
91 <item>refresh_stale_hit option. Not yet ported.
92 <item>ability to follow X-Forwarded-For. Not yet ported.
93 <item>Full caching of Vary/ETag using If-None-Match. Only basic Vary cache supported. Not yet ported.
94 <item>Mapping of server error messages. Not yet ported.
95 <item>http_access2 access directive. Not yet ported.
96 <item>Location header rewrites. Not yet ported.
97 <item>umask directive. Not yet ported.
98 <item>wais_relay. Feature dropped as it's equivalent to cache_peer + cache_peer_access.
99 <item>urlgroup. Not yet ported.
100 <item>collapsed forwarding. Not yet ported.
101 <item>stable Windows support. Irregularly maintained.
102 </itemize>
103
104 <sect1>Logging changes
105 <sect2>access.log
106 <p>The TCP_REFRESH_HIT and TCP_REFRESH_MISS log types have been replaced because they were misleading (all refreshes need to query the origin server, so they could never be hits). The following log types have been introduced to replace them:
107
108 <descrip>
109 <tag>TCP_REFRESH_UNMODIFIED</tag>
110 <p>The requested object was cached but STALE. The IMS query for the object resulted in "304 not modified".
111 <tag>TCP_REFRESH_MODIFIED</tag>
112 <p>The requested object was cached but STALE. The IMS query returned the new content.
113 </descrip>
114 <p>See <url url="http://www.squid-cache.org/Doc/FAQ/FAQ-6.html#ss6.7"> for a definition of all log types.
115
116
117
118
119 <sect1>Changes to squid.conf
120 <p>
121 There have been many changes to Squid's configuration file since Squid-2.6.
122
123 This section gives a thorough account of those changes in three categories:
124
125 <itemize>
126 <item><ref id="newtags" name="New tags">
127 <item><ref id="modifiedtags" name="Changes to existing tags">
128 <item><ref id="removedtags" name="Removed tags">
129 </itemize>
130
131 <p>
132
133
134
135 <sect2>New tags<label id="newtags">
136
137 <p>
138 <descrip>
139 <tag>minimum_icp_query_timeout (msec)</tag>
140 <verb>
141 Default: 5
142
143 Normally the ICP query timeout is determined dynamically. But
144 sometimes it can lead to very small timeouts, even lower than
145 the normal latency variance on your link due to traffic.
146 Use this option to put an lower limit on the dynamic timeout
147 value. Do NOT use this option to always use a fixed (instead
148 of a dynamic) timeout value. To set a fixed timeout see the
149 'icp_query_timeout' directive.
150 </verb>
151 <tag>background_ping_rate</tag>
152 <verb>
153 Default: 10 seconds
154
155 Controls how often the ICP pings are sent to siblings that
156 have background-ping set.
157 </verb>
158
159 <tag>httpd_accel_surrogate_id</tag>
160 <verb>
161 Default: unset
162
163 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
164 need an identification token to allow control targeting. Because
165 a farm of surrogates may all perform the same tasks, they may share
166 an identification token.
167 </verb>
168
169 <tag>http_accel_surrogate_remote on|off</tag>
170 <verb>
171 Default: off
172
173 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
174 Set this to on to have squid behave as a remote surrogate.
175 </verb>
176
177 <tag>esi_parser libxml2|expat|custom</tag>
178 <verb>
179 Default: custom
180
181 ESI markup is not strictly XML compatible. The custom ESI parser
182 will give higher performance, but cannot handle non ASCII character
183 encodings.
184 </verb>
185
186 <tag>email_err_data on|off</tag>
187 <verb>
188 Default: on
189
190 If enabled, information about the occurred error will be
191 included in the mailto links of the ERR pages (if %W is set)
192 so that the email body contains the data.
193 Syntax is &lt;A HREF="mailto:%w%W"&gt;%w&lt;/A&gt;
194 </verb>
195
196 <tag>refresh_all_ims on|off</tag>
197 <verb>
198 Default: off
199
200 When you enable this option, squid will always check
201 the origin server for an update when a client sends an
202 If-Modified-Since request. Many browsers use IMS
203 requests when the user requests a reload, and this
204 ensures those clients receive the latest version.
205
206 By default (off), squid may return a Not Modified response
207 based on the age of the cached version.
208 </verb>
209 <tag>request_header_access</tag>
210 <p>Replaces the header_access directive of Squid-2.6 and earlier, but applies to requests only.
211 <tag>reply_header_access</tag>
212 <p>Replaces the header_access directive of Squid-2.6 and earlier, but applies to replies only.
213
214 <tag>icap_enable on|off</tag>
215 <verb>
216 Default: off
217
218 If you want to enable the ICAP module support, set this to on.
219 </verb>
220 <tag>icap_preview_enable on|off</tag>
221 <verb>
222 Default: off
223
224 Set this to 'on' if you want to enable the ICAP preview
225 feature in Squid.
226 </verb>
227 <tag>icap_preview_size</tag>
228 <verb>
229 Default: -1
230
231 The default size of preview data to be sent to the ICAP server.
232 -1 means no preview. This value might be overwritten on a per server
233 basis by OPTIONS requests.
234 </verb>
235 <tag>icap_default_options_ttl (seconds)</tag>
236 <verb>
237 Default: 60
238
239 The default TTL value for ICAP OPTIONS responses that don't have
240 an Options-TTL header.
241 </verb>
242 <tag>icap_persistent_connections on|off</tag>
243 <verb>
244 Default: on
245
246 Whether or not Squid should use persistent connections to
247 an ICAP server.
248 </verb>
249 <tag>icap_send_client_ip on|off</tag>
250 <verb>
251 Default: off
252
253 This adds the header "X-Client-IP" to ICAP requests.
254 </verb>
255 <tag>icap_send_client_username on|off</tag>
256 <verb>
257 Default: off
258
259 This adds the header "X-Client-Username" to ICAP requests
260 if proxy access is authentified.
261 </verb>
262 <tag>icap_service</tag>
263 <verb>
264 Default: none
265
266 Defines a single ICAP service
267
268 icap_service servicename vectoring_point bypass service_url
269
270 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
271 This specifies at which point of request processing the ICAP
272 service should be plugged in.
273 bypass = 1|0
274 If set to 1 and the ICAP server cannot be reached, the request will go
275 through without being processed by an ICAP server
276 service_url = icap://servername:port/service
277
278 Note: reqmod_precache and respmod_postcache is not yet implemented
279
280 Example:
281 icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
282 icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
283 </verb>
284 <tag>icap_class</tag>
285 <verb>
286 Default: none
287
288 Defines an ICAP service chain. If there are multiple services per
289 vectoring point, they are processed in the specified order.
290
291 icap_class classname servicename...
292
293 Example:
294 icap_class class_1 service_1 service_2
295 icap class class_2 service_1 service_3
296 </verb>
297 <tag>icap_access</tag>
298 <verb>
299 Default: none
300
301 Redirects a request through an ICAP service class, depending
302 on given acls
303
304 icap_access classname allow|deny [!]aclname...
305
306 The icap_access statements are processed in the order they appear in
307 this configuration file. If an access list matches, the processing stops.
308 For an "allow" rule, the specified class is used for the request. A "deny"
309 rule simply stops processing without using the class. You can also use the
310 special classname "None".
311
312 For backward compatibility, it is also possible to use services
313 directly here.
314
315 Example:
316 icap_access class_1 allow all
317 </verb>
318
319 <tag>accept_filter</tag>
320 <verb>
321 The name of an accept(2) filter to install on Squid's
322 listen socket(s). This feature is perhaps specific to
323 FreeBSD and requires support in the kernel.
324
325 The 'httpready' filter delays delivering new connections
326 to Squid until a full HTTP request has been received.
327 See the accf_http(9) man page.
328 </verb>
329 </descrip>
330
331
332 <sect2>Changes to existing tags<label id="modifiedtags">
333 <p>
334 <descrip>
335 <tag>http_port</tag>
336 <p>New options:
337 <verb>
338 disable-pmtu-discovery=
339 Control Path-MTU discovery usage:
340 off lets OS decide on what to do (default).
341 transparent disable PMTU discovery when transparent support is enabled.
342 always disable always PMTU discovery.
343
344 In many setups of transparently intercepting proxies Path-MTU
345 discovery can not work on traffic towards the clients. This is
346 the case when the intercepting device does not fully track
347 connections and fails to forward ICMP must fragment messages
348 to the cache server. If you have such setup and experience that
349 certain clients sporadically hang or never complete requests set
350 disable-pmtu-discovery option to 'transparent'.
351 </verb>
352 <p>Removed options:
353 <verb>
354 urlgroup=, not yet ported to Squid-3.
355
356 no-connection-auth, not yet ported to Squid-3.
357 </verb>
358 <tag> https_port</tag>
359 <p>Removed options:
360 <verb>
361 urlgroup=, not yet ported to Squid-3.
362 </verb>
363 <tag>cache_peer</tag>
364 <p>New options:
365 <verb>
366 basetime=n
367
368 background-ping
369
370 weighted-round-robin
371
372 use 'basetime=n' to specify a base amount to
373 be subtracted from round trip times of parents.
374 It is subtracted before division by weight in calculating
375 which parent to fectch from. If the rtt is less than the
376 base time the rtt is set to a minimal value.
377
378 use 'background-ping' to only send ICP queries to this
379 neighbor infrequently. This is used to keep the neighbor
380 round trip time updated and is usually used in
381 conjunction with weighted-round-robin.
382
383 use 'weighted-round-robin' to define a set of parents
384 which should be used in a round-robin fashion with the
385 frequency of each parent being based on the round trip
386 time. Closer parents are used more often.
387 Usually used for background-ping parents.
388
389 </verb>
390 <p>Removed options:
391 <verb>
392 userhash, not yet ported to Squid-3
393
394 sourcehash, not yet ported to Squid-2
395
396 monitorurl, monitorsize etc, not yet ported to Squid-3
397
398 connection-auth=, not yet ported to Squid-3
399 </verb>
400 <tag>cache_dir</tag>
401 <p>Common options
402 <verb>
403 no-store, replaces the older read-only option
404
405 min-size, not yet portedto Squid-3
406 </verb>
407 <p>COSS file system:
408 <verb>
409 The coss file store is experimental, and still lacks much
410 of the functionality found in 2.6.
411
412 overwrite-percent=n, not yet ported to Squid-3.
413
414 max-stripe-waste=n, not yet ported to Squid-3.
415
416 membufs=n, not yet ported to Squid-3.
417
418 maxfullbufs=n, not yet ported to Squid-3.
419 </verb>
420 <tag>auth_param</tag>
421 <p>Removed Basic auth option
422 <verb>
423 blankpasswor, not yet ported to squid-3.
424 auth_param basic concurrency 0
425 </verb>
426 <p>Removed digest options:
427 <verb>
428 concurrency, not yet ported to Squid-3.
429 </verb>
430
431 <tag>external_acl_type</tag>
432 <p>New format specifications:
433 <verb>
434 %URI Requested URI
435
436 %PATH Requested URL path
437 </verb>
438 <P>Removed format specifications:
439 <verb>
440 %ACL, not yet ported to Squid-3
441
442 %DATA, not yet ported to Squid-3
443 </verb>
444 <p>New result keywords:
445 <verb>
446 tag= Apply a tag to a request (for both ERR and OK results)
447 Only sets a tag, does not alter existing tags.
448 </verb>
449
450 <tag>refresh_pattern</tag>
451 <p>New options:
452 <verb>
453 ignore-no-store
454 refresh-ims
455
456 ignore-no-store ignores any ``Cache-control: no-store''
457 headers received from a server. Doing this VIOLATES
458 the HTTP standard. Enabling this feature could make you
459 liable for problems which it causes.
460
461 refresh-ims causes squid to contact the origin server
462 when a client issues an If-Modified-Since request. This
463 ensures that the client will receive an updated version
464 if one is available.
465 </verb>
466 <tag>acl</tag>
467 <p>New types:
468 <verb>
469 acl aclname http_status 200 301 500- 400-403 ... # status code in reply
470
471 </verb>
472 <p>Removed types:
473 <verb>
474 acl aclname urllogin [-i] [^a-zA-Z0-9] ... # regex matching on URL login field
475
476 acl urlgroup group1 ...
477 # match against the urlgroup as indicated by redirectors
478
479 </verb>
480 <tag>short_icon_urls</tag>
481 <p>New default:
482 <verb>
483 Default: on
484 (Old default: off)
485 </verb>
486 <tag>delay_class</tag>
487 <p>New delay classes:
488 <verb>
489 class 4 Everything in a class 3 delay pool, with an
490 additional limit on a per user basis. This
491 only takes effect if the username is established
492 in advance - by forcing authentication in your
493 http_access rules.
494
495 class 5 Requests are grouped according their tag (see
496 external_acl's tag= reply).
497 </verb>
498
499 <tag>htcp_port</tag>
500 <p>New default to require the feature to be enabled in squid.conf:
501 <verb>
502 Default: 0 (disabled)
503 (Old default: 4827)
504 </verb>
505
506 <tag>icp_port</tag>
507 <p>New default to require the feature to be enabled in squid.conf:
508 <verb>
509 Default: 0 (disabled)
510 (Old default: 3130)
511 </verb>
512
513 <tag>snmp_port</tag>
514 <p>New default to require the feature to be enabled in squid.conf:
515 <verb>
516 Default: 0 (disabled)
517 (Old default: 3401)
518 </verb>
519
520 <tag>logformat</tag>
521 <p>New format tags:
522 <verb>
523 rp Request URL-Path excluding hostname
524
525 et Tag returned by external acl
526
527 &lt;sH Reply high offset sent
528
529 &lt;sS Upstream object size
530 </verb>
531
532 <p>Removed format tags:
533 <verb>
534 &gt;st Request size including HTTP headers, not yet ported to Squid-3.
535
536 st Request+Reply size including HTTP headers, not yet ported to Squid-3.
537 </verb>
538
539 <tag>reply_body_max_size</tag>
540 <p>Syntax changed:
541 <verb>
542 reply_body_max_size size [acl acl...]
543 </verb>
544 <p>allow/deny no longer used.
545
546 <tag>url_rewrite_program</tag>
547 <p>No urlgroup support in either requests or responese
548 </descrip>
549
550
551
552
553 <sect2>Removed tags<label id="removedtags">
554 <p>
555 <descrip>
556 <tag>broken_vary_encoding</tag>
557 <p>Not yet ported to Squid-3.
558 <tag>cache_vary</tag>
559 <p>Not yet ported to Squid-3.
560 <tag>collapsed_forwarding</tag>
561 <p>Not yet ported to Squid-3.
562 <tag>follow_x_forwarded_for</tag>
563 <p>Not yet ported to Squid-3.
564 <tag>*_uses_indirect_client</tag>
565 <p>Not yet ported to Squid-3.
566 <tag>error_map</tag>
567 <p>Not yet ported to Squid-3.
568 <tag>header_access</tag>
569 <p>This has been replaced by request_header_access and reply_header_access
570 <tag>http_access2</tag>
571 <p>Not yet ported to Squid-3.
572 <tag>httpd_accel_no_pmtu_disc</tag>
573 <p>Replaced by disable-pmtu-discovery http_port option
574 <tag>location_rewrite_*</tag>
575 <p>Not yet ported to Squid-3.
576 <tag>refresh_stale_hit</tag>
577 <p>Not yet ported to Squid-3.
578 <tag>umask</tag>
579 <p>Not yet ported to Squid-3.
580 <tag>wais_relay_*</tag>
581 <p>equivalent to cache_peer + cache_peer_access.
582 </descrip>
583
584
585 <sect1>Changes to ./configure Options
586 <p>
587 There have been some changes to Squid's build configuration since Squid-2.6.
588
589 This section gives an account of those changes in three categories:
590
591 <itemize>
592 <item><ref id="newoptions" name="New options">
593 <item><ref id="modifiedoptions" name="Changes to existing options">
594 <item><ref id="notportedoptions" name="Not yet available options">
595 <item><ref id="removedoptions" name="Removed options">
596 </itemize>
597 <p>
598
599
600 <sect2>New options<label id="newoptions">
601
602 <p>
603 <descrip>
604 <tag>--enable-shared[=PKGS]</tag>
605 <p>Build shared libraries. The default is to build without.</p>
606
607 <tag>--enable-static[=PKGS]</tag>
608 <p>Build static libraries. The default is on.</p>
609
610 <tag>--enable-fast-install[=PKGS]</tag>
611 <verb>Optimize for fast installation
612 default: yes</verb>
613
614 <tag>--disable-libtool-lock</tag>
615 <p>Avoid locking (might break parallel builds)</p>
616
617 <tag>--disable-optimizations</tag>
618 <p>Don't compile Squid with compiler optimizations enabled.
619 Optimization is good for production builds, but not
620 good for debugging. During development, use
621 --disable-optimizations to reduce compilation times
622 and allow easier debugging. This option implicitly
623 also enables --disable-inline</p>
624
625 <tag>--disable-inline</tag>
626 <p>Don't compile trivial methods as inline. Squid
627 is coded with much of the code able to be inlined.
628 Inlining is good for production builds, but not
629 good for development. During development, use
630 --disable-inline to reduce compilation times and
631 allow incremental builds to be quick. For
632 production builds, or load tests, use
633 --enable-inline to have squid make all trivial
634 methods inlinable by the compiler.</p>
635
636 <tag>--enable-debug-cbdata</tag>
637 <p>Provide some debug information in cbdata</p>
638
639 <tag>--enable-disk-io=\"list of modules\"</tag>
640 <p>Build support for the list of disk I/O modules.
641 The default is only to build the "Blocking" module.
642 See src/DiskIO for a list of available modules, or
643 Programmers Guide for details on how to build your
644 custom disk module.</p>
645
646 <tag>--enable-esi</tag>
647 <p>Enable ESI for accelerators. Requires libexpat.
648 Enabling ESI will cause squid to follow the Edge
649 Acceleration Specification (www.esi.org). This
650 causes squid to IGNORE client Cache-Control headers.</p>
651 <p><em>DO NOT</em> use this in a squid configured as a web
652 proxy, ONLY use it in a squid configured for
653 webserver acceleration.</p>
654
655 <tag>--enable-icap-client</tag>
656 <p>Enable the ICAP client.</p>
657
658 <tag>--disable-snmp</tag>
659 <p>Disable SNMP monitoring support which is now built by default.</p>
660
661 <tag>--disable-htcp</tag>
662 <p>Disable HTCP protocol support which is now built by default.</p>
663
664 <tag>--enable-kqueue</tag>
665 <p>Enable kqueue() support. Marked as experimental in 3.0.</p>
666
667 <tag>--enable-ipfw-transparent</tag>
668 <p>Enable Transparent Proxy support for systems
669 using FreeBSD IPFW style redirection.</p>
670
671 <tag>--disable-mempools</tag>
672 <p>Disable memPools. Note that this option now simply sets the
673 default behaviour. Specific classes can override this at runtime, and
674 only lib/MemPool.c needs to be altered to change the squid-wide
675 default for all classes.</p>
676
677 <tag>--enable-cpu-profiling</tag>
678 <p>This option allows you to see which internal functions
679 in Squid are consuming how much CPU. Compiles in probes
680 that measure time spent in probed functions. Needs
681 source modifications to add new probes. This is meant
682 for developers to assist in performance optimisations
683 of Squid internal functions.</p>
684 <p>If you are not developer and not interested in the stats
685 you shouldn't enable this, as overhead added, although
686 small, is still overhead. See lib/Profiler.c for more.</p>
687
688 <tag>--with-gnu-ld</tag>
689 <p>Assume the C compiler uses GNU ld. The default is to auto-detect.</p>
690
691 <tag>--with-pic</tag>
692 <p>Try to use only PIC/non-PIC objects. The default is to use both.</p>
693
694 <tag>--with-tags[=TAGS]</tag>
695 <p>Include additional configurations. The default is automatic.</p>
696
697 <tag>--with-default-user=USER</tag>
698 <p>Sets the default System User account for squid permissions.
699 The default is 'nobody' as in other releases of squid.</p>
700
701 <tag>--with-cppunit-basedir=[PATH]</tag>
702 <p>Path where the cppunit headers and libraries are found
703 for unit testing. The default is automatic detection.</p>
704 <p>NOTE: Since 3.0-PRE6 and 2.6STABLE14 squid no longer comes
705 bundled with CPPUnit. Compile-time validation will be disabled
706 if it is not installed on your system.</p>
707
708 </descrip>
709 </p>
710
711 <sect2>Changes to existing options<label id="modifiedoptions">
712
713 <p>
714 <descrip>
715 <tag>--enable-carp</tag>
716 <p>CARP support is now built by default.
717 --disable-carp can be used to build without it.</p>
718
719 <tag>--enable-htcp</tag>
720 <p>HTCP protocol support is now built by default.
721 Use --disable-htcp to build without it.</p>
722
723 <tag>--enable-snmp</tag>
724 <p>SNMP monitoring is now build by default.
725 Use --disable-snmp to build without it.</p>
726
727 <tag>--enable-heap-replacement</tag>
728 <p>Please use --enable-removal-policies directive instead.</p>
729
730 <tag>--with-maxfd=N</tag>
731 <p>Replaced by --with-filedescriptors=N</p>
732 <p>Override maximum number of filedescriptors. Useful
733 if you build as another user who is not privileged
734 to use the number of filedescriptors you want the
735 resulting binary to support</p>
736
737 <tag>--enable-select</tag>
738 <p>Deprecated.
739 Automatic checks will enable best I/O loop method available.</p>
740
741 <tag>--enable-epoll</tag>
742 <p>Deprecated.
743 Automatic checks will enable best I/O loop method available.</p>
744
745 <tag>--enable-poll</tag>
746 <p>Deprecated.
747 Automatic checks will enable best I/O loop method available.</p>
748
749 <tag>--enable-kqueue</tag>
750 <p>kqueue support is marked Experimental in Squid 3.0. Known to have some issues under load.</p>
751
752 </descrip>
753 </p>
754
755 <sect2>Not yet available options<label id="notportedoptions">
756
757 <p>These configure options have not yet been ported to Squid-3. If you need something to do then
758 porting one of these from Squid-2 to Squid-3 is most welcome.
759
760 <descrip>
761 <tag>--enable-devpoll</tag>
762 <p>Support for Solaris /dev/poll</p>
763
764 <tag>--enable-select-simple</tag>
765 <p>Basic POSIX select() loop without any binary fd_set optimizations.</p>
766
767 <tag>--enable-follow-x-forwarded-for</tag>
768 <p>Support following the X-Forwarded-For HTTP header for determining the
769 client IP address</p>
770 </descrip>
771
772 <sect2>Removed options<label id="removedoptions">
773
774 <p>The following configure options have been removed.
775
776 <descrip>
777 <tag>--enable-dlmalloc</tag>
778 <p>Most OS:es have good malloc implementations these days, and the version we used to ship with Squid was very very old..</p>
779 <tag>--enable-mempool-debug</tag>
780 <p>Debug option, not needed and therefore removed.</p>
781 <tag>--enable-forward-log</tag>
782 <p>Rarely used extra log file. Removed.</p>
783 <tag>--enable-multicast-miss</tag>
784 <p>Rarely used feature, and multicast ICP acheives almost the same result. Removed.</p>
785 <tag>--enable-coss-aio-ops</tag>
786 <p>Specific to the COSS implementation in Squid-2</p>
787 <tag>--enable-large-cache-files</tag>
788 <p>Now enabled by default. Configure option was redundant and therefore removed.
789 <tag>--enable-truncate</tag>
790 <p>Known to cause race conditions where cache objects may get corrupted, and this for at most a marginal performance improvement. Removed.</p>
791
792 </descrip>
793
794 </article>