Ellie,

Thanks for the explanation!

I'll try to prepare a PR for the compiling page these days.

Regards,
Anatoli

On 19/6/20 00:29, ellie timoney wrote:
> I think transfig is the package that provides fig2dev?  I think that's an 
> artifact from the old days, and is only used for generation of a couple of 
> png files in the legacy documentation (doc/legacy/murder.png and 
> doc/legacy/netnews.png).  I think it's only needed when configure is run with 
> --enable-maintainer-mode (i.e. if you're building a release or package, 
> rather than just building the software).  Those files are pre-built in the 
> release tarballs, so additionally you would only need this when building from 
> git.  It would be nice to one day finish merging this legacy documentation 
> into the current documentation, cause then we can get rid of it: 
> https://github.com/cyrusimap/cyrus-imapd/issues/1769
> 
> libsrs2 looks like it's used for implementing Sender Rewriting Scheme 
> functionality for messages forwarded by sieve script.  Without it, messages 
> forwarded by sieve script will not have this functionality (and, I suppose, 
> might have difficulty delivering to servers that insist on it).
> 
> The section of configure.ac that looks for libsrs2 is missing an 
> AC_MSG_RESULT call to match the AC_MSG_CHECKING one.  It probably also wants 
> an AC_NOTICE when it's not found, explaining the consequences of it being 
> left out, like we have for the various http dependencies.  I'll fix this up 
> in a moment.
> 
> shapelib is already explained by configure.  For example, I don't have it 
> installed myself, so I see:
> 
>> checking for SHAPELIB... no
>> configure: tzdist will not have geolocation support.  Consider installing 
>> shapelib
> 
> If you don't run a tzdist service, you don't need it.  If you do, you 
> probably also know whether geolocation support is useful; I don't.
> 
> I've already updated configure.ac to provide a similar notice when chardet is 
> not found (https://github.com/cyrusimap/cyrus-imapd/commit/30fef51485); it'll 
> be in 3.2.2. :)
> 
> If you want to have a go at making the compiling page a bit clearer, I'd be 
> happy to review/merge a pull request.  Please submit it against the master, 
> and once we're happy with it, I'll get it cherry-picked appropriately to the 
> other branches.
> 
> Cheers,
> 
> ellie
> 
> On Fri, Jun 19, 2020, at 12:50 PM, Anatoli wrote:
>> Ellie (or anyone else, Ken?),
>>
>> Could you please let us know what's the purpose of transfig, libsrs2 and
>> shapelib libs in cyrus-imapd, and if they are required for any
>> functionality (and if not (i.e. they are optional), what's their
>> benefit)?
>>
>> Also, Ellie, would it be useful to add to configure checks with warnings
>> for these libs (as well as for chardet) to inform those users that build
>> cyrus-imapd from sources that these libs are actually needed if certain
>> features are enabled (like Cal/CardDAV & JMAP)? I could prepare a patch.
>>
>> And I'd like to add these clarifications to the compiling page and
>> reformat a bit the tables. If you consider it appropriate, I could
>> prepare a patch too.
>>
>> Regards,
>> Anatoli
>>
>> On 5/6/20 05:45, Anatoli wrote:
>>>> 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