new features with no documentation

Anatoli me at anatoli.ws
Fri Jun 5 04:45:47 EDT 2020


> 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
>>


More information about the Cyrus-devel mailing list