Cannot build packages needing libevent with those needing libev for the same system

J. Hart jfhart085 at gmail.com
Fri Nov 17 17:55:13 CET 2017


Thank you very much for your generous assistance and quick reply.
It turned out to be as you said.  I had actually been unaware that 
libevent had fairly different libevent-1.x and libevent-2.x packages.  
What I really needed was a libevent-1.x package.  What I ended up doing 
was building and installing the libev package first, and installing the 
libevent-1.x package over that, which overwrote the event.h file from 
libev and left the desired one from libevent-1.x

Everything else went perfectly after that.

With Thanks,

J. Hart

On 11/14/2017 10:49 AM, Marc Lehmann wrote:
> On Mon, Nov 13, 2017 at 11:21:48PM -0500, "J. Hart" <jfhart085 at gmail.com> wrote:
>> This function is defined in libevent.so, and declared for the compiler in
>> event2/event.h. Both of these objects are part of the libevent package (ex
>> libevent-2.0.22). The /usr/include/event.h header of the libevent package
>> conflicts with that of the libev package. The libev package does not define
>> the "event_base_loopbreak" function required, in this case, by Qt-5.9.2, and
>> the libev package cannot be installed as is along with the libevent package.
>> If the libevent/libev header conflict is not resolved, then the packages
>> requiring one of these must be patched.  This can be rather complicated,
>> particularly for large packages like Qt.   This would also have to be redone
>> for each new release.
> The libevent 1 emulation is optional, you could embed libev without the
> event.[ch] files.
>
> It might be possible to supply an event_base_loopbreak function, although I
> don't know if this is part of the libevent 1 API (the one libev emulates) or
> libevent 2.
>
> Maybe sth. like this (for event.c) works (this is not correct, so some
> testing might be required):
>
>     int event_base_loopbreal (struct event_base *base)
>     {
>       dLOOPbase;
>
>       ev_break (EV_A_ EVBREAK_ONE);
>
>       return 0;
>     }
>
> However, using libevent2 for libevent functions and libev for libev
> functions (by embedding only the liubev core parts) would probably be the
> best solution.
>




More information about the libev mailing list