Re: Proposal: switch to always-build for some currently optional features

Amos Jeffries <[email protected]> Thu, 22 Sep 2022 02:47:48 +1200
Newsgroups gmane.comp.web.squid.devel
Message-ID <[email protected]>
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
_______________________________________________
squid-dev mailing list
[email protected]
http://lists.squid-cache.org/listinfo/squid-dev