Bug 672396

Summary: Bundled libev
Product: [Fedora] Fedora Reporter: Mathieu Bridon <bochecha>
Component: rxvt-unicodeAssignee: Andreas Bierfert <andreas.bierfert>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: andreas.bierfert, fedora, mlichvar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-08 16:41:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 672153    
Bug Blocks:    

Description Mathieu Bridon 2011-01-25 02:35:50 UTC
Description of problem:
rxvt-unicode currently bundles a private copy of the libev sources. It should instead build against the system libev.

If that is not possible (for example because it builds a "specialized" ABI-incompatible libev), it could use the system libev sources instead of its own private copy.

This is what is being done in other packages like tigervnc (which BuildRequires the xorg-x11-server-source subpackage package), and what I will be doing in ther perl-EV package once it gets approved (#448613)

This obviously depends on bug #672153 being implemented, which would add a -source subpackage to the libev package, so I'm adding the relevant flag.

For examples on how to implement it, see the proposed perl-EV SPEC file, or the tigervnc one. Basically, it all comes down to:
BuildRequires: libev-source
[... snip ...]
# remove the bunled libev and use the system one instead
rm -fr ./libev/*
cp -a /usr/share/libev-source/* ./libev/*

Subpackage name and source folder might change once bug #672153 is fixed, and I'll provide a definitive patch to the rxvt-unicode.spec file once it is the case.

Comment 1 Andreas Bierfert 2011-01-25 06:52:01 UTC
I am inclined to close this as wontfix. I had a long talk about this with upstream a couple of month ago. If I understood it correctly they discourage system wide deployments of libev altogether. As you stated building from a -source package would be an alternative. However, even this is discouraged because of various reasons special or not to libev.

In case of rxvt-unicode there would be no advantage to this as upstream is the same person as libev upstream.

Did you discuss this at all with upstream developers?

Comment 2 Mathieu Bridon 2011-01-25 07:41:37 UTC
(In reply to comment #1)
> I am inclined to close this as wontfix. I had a long talk about this with
> upstream a couple of month ago. If I understood it correctly they discourage
> system wide deployments of libev altogether.

It's not really that it is discouraged, it's that the system-wide binary libev is ABI-incompatible with the ones that perl-EV or rxvt-unicode build (although they come from identical source code).

> As you stated building from a
> -source package would be an alternative. However, even this is discouraged
> because of various reasons special or not to libev.

You mean discouraged in Fedora? If that is the case, do you have links to resources that explain why? (I will need to read them for my proposal of perl-EV).

> In case of rxvt-unicode there would be no advantage to this as upstream is the
> same person as libev upstream.

This is also the case with the Perl EV module.

> Did you discuss this at all with upstream developers?

Yes, I talked about it with him as I'm trying to submit perl-EV to Fedora (see the review request in my previous comment).

Upstream has actually advised me the libev-source subpackage approach, and he has also told me that rxvt-unicode was in the same case as perl-EV, which is why I opened this bug report in the first place.

Debian is also looking into doing the -source subpackage trick:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507373

Out of curiosity, did you get an exception from FESCo for bundling the sources of libev in rxvt-unicode? If yes, then maybe I should stop bothering and ask simply them for an exception for perl-EV. :)