Squid 7.0.0-VCS release notes

Squid Developers

1. Notice

2. Major new features since Squid-6

3. Changes to squid.conf since Squid-6

4. Changes to ./configure options since Squid-6

5. Copyright


1. Notice

The Squid Team are pleased to announce the release of Squid-@PACKAGE_VERSION@ for testing.

This new release is available for download from http://www.squid-cache.org/Versions/v7/ or the mirrors.

While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.

We welcome feedback and bug reports. If you find a bug, please see https://wiki.squid-cache.org/SquidFaq/BugReporting for how to submit a report with a stack trace.

1.1 Known issues

Although this release is deemed good enough for use in many setups, please note the existence of open bugs against Squid-7.

1.2 Changes since earlier releases of Squid-7

The Squid-7 change history can be viewed here.

2. Major new features since Squid-6

Squid-7 represents a new feature release above Squid-6.

The most important of these new features are:

Most user-facing changes are reflected in squid.conf (see further below).

2.1 Cache Manager changes

For more information about the Cache Manager feature, see wiki.

In order to reduce workload on the Squid development team we have chosen to stop providing several tools related to Cache Manager which have previously been bundled with Squid.

Removal of the squidclient tool.

Popular command-line tools such as curl or wget provide equivalent features.

Removal of the cachemgr.cgi tool.

Access to the Cache Manager API is available by sending HTTP(S) requests directly to Squid with the URL-path prefix /squid-internal-mgr/. A plethora of tools, such as curl, wget, or any web browser, can be used instead of cachemgr.cgi.

Removal of the cache_object: URI scheme.

This custom scheme does not conform to RFC 3986 URI sytax. It has been replaced with Cache Manager access through HTTP and HTTPS URLs.

Removal of non_peers Report

Squid still ignores unexpected ICP responses but no longer remembers the details that comprised the removed report. The senders of these ICP messages are still reported to cache.log at debugging level 1 (with an exponential backoff).

2.2 Removed purge tool

The purge tool (also known as squidpurge, and squid-purge) was limited to managing UFS/AUFS/DiskD caches and had problems parsing non-trivial squid.conf files.

The cache contents display and search it provided can be obtained with a script searching the cache manager objects report.

This tool used the custom PURGE HTTP method to remove cache objects. This can be performed directly on any Squid configured to allow the method. Like so:

    acl PURGE method PURGE
    http_access allow localhost PURGE
Any HTTP client (such as curl) can then be used to evict objects from the cache, for example:
    curl -XPURGE --proxy http://127.0.0.1:3128 http://url.to/evict/
Alternatively the HTCP CLR mechanism can be used.

2.3 Removed deprecated languages

Old Squid used full language name to refer to error page translations. These have been deprecated since addition of ISO-639 language codes and support for HTTP Accept-Language negotiation in Squid-3.x.

As of this release Squid will no longer provide the symlinks needed for seamless upgrade for squid.conf containing settings such as

    error_directory English
All Squid installations are expected to already have them, or to convert to the ISO-639 equivalents. Existing symlinks are not affected.

See http://www.squid-cache.org/Versions/langpack/ for the latest list of official Squid translations.

See https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes for the full ISO-639 list. HTTP uses the 2-letter (set 1) codes.

3. Changes to squid.conf since Squid-6

This section gives an account of those changes in three categories:

3.1 New directives

No new directives in this version.

3.2 Changes to existing directives

acl

Changed src to detect and handle overlapping IP and IP-range values. Merging where necessary.

Changed dst to detect and handle overlapping IP and IP-range values. Merging where necessary.

Changed localip to detect and handle overlapping IP and IP-range values. Merging where necessary.

Changed ssl::server_name to detect and handle overlapping sub-domain and wildcard domains. Merging or ignoring where necessary.

Changed srcdomain to detect and handle overlapping sub-domain and wildcard domains. Merging or ignoring where necessary.

Changed dstdomain to detect and handle overlapping sub-domain and wildcard domains. Merging or ignoring where necessary.

Changed http_status to detect and handle overlapping status and status-range values. Merging where necessary.

buffered_logs

Honor the off setting in 'udp' access_log module.

cachemgr_passwd

Removed the non_peers action. See the Cache Manager section for details.

3.3 Removed directives

mcast_miss_addr

The corresponding code has not built for many years, indicating that the feature is unused.

mcast_miss_ttl

The corresponding code has not built for many years, indicating that the feature is unused.

mcast_miss_port

The corresponding code has not built for many years, indicating that the feature is unused.

mcast_miss_encode_key

The corresponding code has not built for many years, indicating that the feature is unused.

4. Changes to ./configure options since Squid-6

This section gives an account of those changes in three categories:

4.1 New options

--without-gss

Renamed from --without-gnugss.

--without-psapi

Disable auto-detection of Windows PSAPI library.

--without-sasl

Disable auto-detection of Cyrus SASL (or compatible) library.

CPPFLAGS=-DINCOMING_FACTOR=

Control the listening sockets responsiveness with poll(2) and select(2). The higher the INCOMING_FACTOR, the slower the algorithm will respond to load spikes/increases/decreases in demand. A value between 3 and 8 is recommended. Default is 5.

4.2 Changes to existing options

--disable-esi

The ESI feature is now disabled by default. Use --enable-esi if needed.

4.3 Removed options

--enable-cachemgr-hostname=

The cachemgr.cgi tool this option relates to has been removed.

--without-gnugss

Renamed to --without-gss.

CPPFLAGS=-DHEADERS_LOG

The code enabled by this preprocessor macro has not built for many years, indicating that the feature is unused.

CPPFLAGS=-DMULTICAST_MISS_STREAM

The code enabled by this preprocessor macro has not built for many years, indicating that the feature is unused.

5. Copyright

Copyright (C) 1996-2023 The Squid Software Foundation and contributors

Squid software is distributed under GPLv2+ license and includes contributions from numerous individuals and organizations. Please see the COPYING and CONTRIBUTORS files for details.