[squid-dev] Proposal: switch to always-build for some currently optional features
Amos Jeffries
squid3 at treenet.co.nz
Wed Sep 21 14:47:48 UTC 2022
On 20/09/22 01:28, Francesco Chemolli wrote:
> Hi all,
> there is a bunch of features that are currently gated at compile
> time: among others, I see:
> - adaptation (icap, ecap)
> - authentication
> - ident
> - delay pools
> - cache digests
> - htcp
> - cache digests
> - wccp
> - unlinkd
>
> I'd like to propose that we switch to always-build them.
If you mean switching their build to default-enable. Sure - but there
are often good reasons for each specific item to be default disabled today:
* performance expensive logic
delay pools, cache digests, adaptation
* unavailable dependencies
adaptation, auth sub-components
* rarely necessary
unlinkd, wccp, delay pools, htcp
* buggy
delay pools, wccp
Those reasons are also why we cannot simply remove the ./configure
options for them (yet).
> We would gain:
> - code clarity
This proposal only has a very minor gain for code clarity. The worst of
that problem is all the #if/def looking for OS hacks/workarounds, and
the unnecessary custom re-implementations still hanging around.
> - ease of development
I do no think there will be any change regarding ease. Just a different
way of setting up the testing.
> - test coverage
Disagree. The default/min/max build test "layers" already build as many
of these as can be tested.
Plus all the reasons Alex already stated.
> - feature uniformity across builds
>
I agree with most of Alex points on these.
In addition, on the security side there are some passive defense
benefits from feature obscurity and avoidance of a mono-culture for
Squid installations.
> We would lose:
> - slightly longer build time
Longer build time may not be an issue for users not building Squid
often. But it would be compounding the already tough build farm situation.
> - larger binaries
>
> The latter should not be an issue anymore, even the most embedded of
> embedded systems Squid is likely to be used on has plenty of storage and
> core, and the former should not be too big a deal
>
It has been 4-5 years since I had any direct customers needing embedded
Squid. AIUI the needs there are for software updates on hardware that
are difficult to change (eg satellites or remote geographic outposts).
HTH
Amos
More information about the squid-dev
mailing list