Hi Jim,

On Tue, 25 Jun 2024, at 9:45 AM, [email protected] wrote:
> I'm trying to compile Cyrus imapd from source because I want to enable jmap. 
> <waves at jmappers> Having a couple problems doing this.
> 
> Using the procedure at http://www.cyrusimap.org/imap/developer/compiling.html 
> on Debian Bookworm:
> 
> 1. Running the command `autoreconf -i -s`, I keep getting warnings about a 
> bunch of macros being obsolete, interspersed with messages telling me to run 
> autoupdate. I have run autoupdate, but still get the warnings. Not sure 
> whether these should be ignored or not.

Those are really warnings for maintainers, not for people just compiling the 
software, so you can ignore them.  You don't need to run autoupdate either.  
You get them because Bookworm's autotools packages are fairly new, and Cyrus 
has some old stuff to accommodate working with older autotools versions.

> 2. Get the following error:
> configure: error: Unit tests explicitly requested, but CUnit library is not 
> installed
> I'm not familiar with CUnit, so I looked for a Debian package by that name. 
> Closest thing was libcunit1, which I installed but didn't fix the error. 

On Debian, packages like "libfoo" are runtime packages.  They're used by 
software that has already been compiled.  If you're compiling software, you'll 
also need the compile time packages, which are called like "libfoo-dev".  So in 
this case you'll want "libcunit1-dev".  The same pattern applies for all the 
other dependencies.

> Ended up working around this by removing --enable-unit-tests from the 
> configure command, which was successful. Is there a reason for people just 
> compiling imapd to enable unit tests?

They can be useful for detecting subtle incompatibilities on new or unusual 
platforms.  But if you're using Debian stable on x86_64 and not making code 
changes, there's not much to be gained from running the unit tests.

> 
> 3. The make command fails with an error:
> imap/mbpath.c:119:13: error: ‘find_tier’ defined but not used 
> [-Werror=unused-function]
>   119 | static void find_tier(const char *key, const char *val 
> __attribute__((unused)), void *rock)
>       |             ^~~~~~~~~
> This one is curious; both the definition and use of the function are inside a 
> `#ifdef USE_XAPIAN` conditional. Any thoughts on what would be causing this?

That's weird.  Do you have Xapian enabled in the build?  If not, does enabling 
Xapian (and installing the dependencies it wants) make it go away?  Either way, 
it's odd that it sees one and not the other when they're both behind the same 
ifdef guard.  You could open a Github issue for this and attach your 
config.log, redacted as necessary.

But without changing anything else about what you're doing, you might be able 
to just work around it by running configure like this:

./configure CFLAGS=-Wno-unused-function [your other configure args...]

But that inconsistency is weird...

> I'll probably be back with more questions once I get past this...

Good luck! :)

ellie

------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/T149cd5ba8d3f6d35-M13f48a7a46a70e729e6e1914
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to