I agree with Leif. We don't want to be in the business of creating out own version of libraries with special patches and tweaks. The process would be the same for any other library we depend on (glibc, openssl, etc.)

We should only depend on libraries that are stable and reliable. I am still apprehensive about including libev as a dependency, but it has little to do with the license.

- Does it handle edge triggering? (I didn't see anything about level vs edge in the man page)
- What other projects use it?
- Why does everyone seem to roll there own even handlers?
- How active is the development?

We can talk more about it when we are in the office tomorrow and/or apachecon...

-Bryan

On 11/01/2009 03:28 PM, Leif Hedstrom wrote:
On 11/01/2009 03:34 PM, Andrew Hsu wrote:
If libev is a well-worn library that we can depend on like libc, then the risk is small to just link it up. We can depend on it to kickass for free.

I don't know how "well-worn" it is yet, but then this is an argument to leave the "native" epoll() config in there for a while :).


However, if there is a bug in the event loop that we need an emergency fix for then we have to consider the license if we want to ship portions of modified libev code. If the license is incompatible, we need to pressure libev to push the fix.

I think that's incredibly unlikely to happen, I'd imagine we'd pressure libev for a fix, or, provide a patch to it and let people build their own version of the library. And, any distro can do the same, i.e. the libev code with fixes doesn't have to be part of Apache Traffic Server source distribution. Many distros build packages with their own patch sets anyways, so it's definitely not an uncommon thing to do.

And in any case, if this is a serious consideration, we're already screwed on so many levels, by relying on several libraries that are not ALv2 compatible. I'd be very reluctant to include common library code in our TS source tree to fix a bug in such library, even if the licenses are compatible. Being part of the Open Source community ought to give us more leverage too to get such bugs fixed in the libraries in a timely manner.


Again, this could all be moot if libev's LICENSE is compatible with ALv2 (which looks like it is). But the same consideration needs to be taken for other event libraries with different licenses.

Yeah, if it's a moot point, lets leave it at that. I think going down this hole, and try to cover for every possible library and dependencies on those libraries would be painful, to say the least. Lets provide patches to those libraries if/when it happens, and binary packages can provide such fixes as necessary (without tainting the Apache TS code base).

I'd be curious to hear if any of our mentors or HTTPD developers have any thoughts on this? Is this generally something you worry about, depending on non-ALv2 compatible libraries (like, glibc)?

Cheers,

-- Leif


Reply via email to