Opened 13 years ago

Closed 13 years ago

#31359 closed defect (fixed)

lighttpd 1.4.28 is not compatible with libev 4

Reported by: trcx528@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc:
Port: lighttpd

Description (last modified by neverpanic (Clemens Lang))

Macports correctly downloaded and install libev but when macports attempts to configure lighttpd, it throws an error:

info:configure checking for LIBEV... no
:info:configure checking ev.h usability... yes
:info:configure checking ev.h presence... yes
:info:configure checking for ev.h... yes
:info:configure checking for ev_loop in -lev... no
:info:configure configure: error: libev not found
:info:configure shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_lighttpd/lighttpd/work/lighttpd-1.4.$
:error:configure Target org.macports.configure returned: configure failure: shell command failed (see log for details)
:debug:configure Backtrace: configure failure: shell command failed (see log for details)

I have just uninstalled all of my ports, and completely removed macports, opting to compile macports myself rather than using the prebuilt version. Prior to this WINE didn't work, but now it does work. Unfortunately lighttpd has now broke. I suspect that my path is somehow messed up, but it looks good to me:

/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin

Any help is a appreciated.

Change History (5)

comment:1 Changed 13 years ago by trcx528@…

Cc: trcx528@… added

Cc Me!

comment:2 Changed 13 years ago by neverpanic (Clemens Lang)

Cc: trcx528@… removed
Description: modified (diff)
Keywords: lighttpd webhosting failed-to-configure removed
Owner: changed from macports-tickets@… to ryandesign@…

Please use WikiFormatting, preview your entry before posting and remember to Cc the maintainer. You don't need to Cc yourself.

The problem is most likely caused by the recent update of libev to version 4.0.4 in r84238. A solution would be to duplicate the libev port as of version 3.9 (revision 84237) into a port named libev3 and make lighttpd depend on this port.

comment:3 in reply to:  2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Status: newassigned
Summary: Libev not found when installing lighttpdlighttpd 1.4.28 is not compatible with libev 4

Replying to cal@…:

The problem is most likely caused by the recent update of libev to version 4.0.4 in r84238.

Right, see #28680.

A solution would be to duplicate the libev port as of version 3.9 (revision 84237) into a port named libev3 and make lighttpd depend on this port.

Right, this was suggested on the mailing list too. I'd rather update lighttpd to be compatible with libev 4 if possible. lighttpd 1.4.29 is compatible with libev 4 but does not compile on Mac OS X when ssl is enabled, which it is by default in MacPorts. The developers fixed this 6 months ago but have not released a new version of lighttpd 1.4.x since then. I tried backporting the fix to 1.4.28 and ran into some problems, but I forget exactly what.

comment:4 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, I remember the situation now.

Getting lighttpd 1.4.28 to detect libev 4 is apparently easy. In r84330 I committed the same patch gentoo is using. Unfortunately, though this now gets us through the configure phase, the build phase now fails for me with:

/opt/local/include/ev.h:222: error: expected identifier before numeric constant

That's with gcc-4.2; clang provided a much more helpful error which made it clear that the EV_ERROR which /opt/local/include/ev.h is trying to define is already defined (to a different value) by /usr/include/sys/event.h. Somebody else pointed this out in another context. I don't know how to resolve this conflict.

And 1.4.29 doesn't build, due to openssl / md5 issues. The upstream patch for this issue would not apply cleanly to 1.4.29 and it's rather long so I didn't pursue trying to generate a new patch by apply it by hand. I also suspect that once this issue is solved, we'll be back to the EV_ERROR conflict again.

comment:5 in reply to:  4 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

Replying to ryandesign@…:

Ok, I remember the situation now.

build phase now fails for me with:

/opt/local/include/ev.h:222: error: expected identifier before numeric constant

And 1.4.29 doesn't build, due to openssl / md5 issues. [...] I also suspect that once this issue is solved, we'll be back to the EV_ERROR conflict again.

Actually with 1.4.29 I was getting the EV_ERROR problem right away, so something is different than when I initially looked at the problem months ago. I found that I could fix 1.4.28 by disabling kqueue, so that's what I did in r84337.

Note: See TracTickets for help on using tickets.