> Thanks for the explanation. What happens is that at least Cal/CardDAV
> compile and work well without libchardet (at least under normal
> circumstances) and, as it was not marked as required, I thought it's an
> optional lib and here is the question of why to use it.

Actually, the same happens with transfig, libsrs2 and shapelib.

The page mentiones these libs, but "Required for `make check`" (not sure
what that means in relation to the lib being reqiured for cyrus-imapd as
such) for all of them is "no".

What would help is a column "required" yes/no and another column "usage
in cyrus-imapd" explaining for what exactly it's used. Say if it's for
tzdata processing in the TZDist module, then I probably won't build with
it as I don't see much use for it (or maybe package it as a flavor).

But if it's something essential for a broader functionality like CalDAV
itself, then definitely it would be included. But at this moment the
Compiling page doesn't provide these details and here we are.


On 5/6/20 05:30, Anatoli wrote:
> Ellie,
> 
>> libchardet is already listed on the compiling page as being used by
>> the CalDAV, CardDAV, and/or JMAP features.  You would decide to
>> install libchardet based on whether you need these features: if you
>> don't enable these features, you don't need it; if you do, you
>> probably do.
>>
>> If you don't have libchardet, Cyrus will not do character-set
>> detection.  If some piece of data has no character set coming in, it
>> will have no character set.  I don't know why you would decide to not
>> use this, and it may simply become a mandatory requirement for these
>> features in 3.4.  It might have been mandatory in 3.2, if this had
>> been brought to our attention during the nearly 3 month beta window;
>> but now that it's in a stable release, it will remain as it is.
> 
> Thanks for the explanation. What happens is that at least Cal/CardDAV
> compile and work well without libchardet (at least under normal
> circumstances) and, as it was not marked as required, I thought it's an
> optional lib and here is the question of why to use it.
> 
> I guess what you could do for 3.2 is to include a warning in configure
> explaining the issue, so the maintainers see it and take appropriate
> action. I suppose there are not that many installations with 3.2 yet so
> if the warning is included with 3.2.2 it would be an appropriate time.
> 
> Regards,
> Anatoli
> 
> On 4/6/20 21:58, ellie timoney wrote:
>> On Thu, Jun 4, 2020, at 12:52 PM, Anatoli wrote:
>>>> chardet is used by the JMAP module of httpd to detect the character
>>> set of untagged 8-bit headers.
>>>
>>> Does that mean that these libs are required? If not, what would happen
>>> if not included? How Cyrus would detect the charset? Or put in other
>>> words, if they are not required, what's the benefit to use them?
>>>
>>> On the other hand, may I suggest to please add these details to the
>>> Compiling [1] page? There's already a lot of useful information, but
>>> some of the libs lack any details on what's their purpose in Cyrus and
>>> why they are beneficial/required (and if they are not used yet, maybe
>>> they shouldn't be mentioned there at all?). This could help porters and
>>> maintainers to make more educated decisions on how to package Cyrus.
>>
>> libchardet is already listed on the compiling page as being used by the 
>> CalDAV, CardDAV, and/or JMAP features.  You would decide to install 
>> libchardet based on whether you need these features: if you don't enable 
>> these features, you don't need it; if you do, you probably do.
>>
>> If you don't have libchardet, Cyrus will not do character-set detection.  If 
>> some piece of data has no character set coming in, it will have no character 
>> set.  I don't know why you would decide to not use this, and it may simply 
>> become a mandatory requirement for these features in 3.4.  It might have 
>> been mandatory in 3.2, if this had been brought to our attention during the 
>> nearly 3 month beta window; but now that it's in a stable release, it will 
>> remain as it is.
>>
>> cld2 was used by one (or maybe both) of the experimental search features 
>> that were accidentally included in 3.2.0, and removed in 3.2.1 (see the 
>> release notes).  Looks like we forgot to remove the configure checks for the 
>> library when removing the feature(s) that used it.  You don't need it, and 
>> if you have it, it won't be used anyway.
>>
>> Cheers,
>>
>> ellie
>>

Reply via email to