Packaging changes for libev in Rawhide

Mathieu Bridon bochecha at fedoraproject.org
Wed Nov 20 03:24:34 UTC 2013


On Tue, 2013-11-19 at 14:38 +0100, Michael Schwendt wrote:
> On Tue, 19 Nov 2013 21:01:06 +0800, Mathieu Bridon wrote:
> 
> > > This one is weird:
> > > https://bugzilla.redhat.com/672153
> > > 
> > > In order to make the "perl-EV" package not use a bundled "libev" source,
> > > you build a "libev-source" subpackage that perl-EV adds as BuildRequires.
> > > In other words, perl-EV now still bundles libev, but only indirectly. An
> > > update of libev does not affect perl-EV until perl-EV is rebuilt. libev has
> > > been updated from 4.11 to 4.15 in Fedora, but perl-EV has not been rebuilt.
> > 
> > Right, it's certainly unorthodox.
> > 
> > The problem is that libev is actually intended to be bundled by
> > upstream, and perl-EV is made by the same people.
> 
> It's similar with libeio (retired) and Perl IO::AIO by the same author.
> The Perl module contains a renamed and private DSO lib built from a
> bundled copy of the library sources. Even if the Perl module could be
> patched to use the system-wide DSO lib instead, there are no guarantees
> about API/ABI stability. Even if the system lib has been compatible for a
> long time, it may break in future releases, and e.g. the module may include
> a modified bundled lib source eventually.
> 
> > As a result, they **really** don't want to unbundle libev from perl-EV.
> > 
> > The approach I followed was a compromise, it's definitely not the most
> > desirable outcome.
> > 
> > > Such a dependency ought to be tracked in a special way, preferably with
> > > official blessing from the FPC.
> > 
> > I didn't pass it through FPC because there are a few precedents. The one
> > I inspired myself from is xorg-x11-server-source.
> > 
> > I assumed that given there were already quite a few of these, it was an
> > accepted practice.
> > 
> > Did I assume wrong?
> 
> I think so.
> 
> The current packaging approach is circumventing the packaging policies:
> https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
> 
> perl-EV does not use the system libev. No real "unbundling" has been
> achieved by replacing the bundled source with another copy at build-time.
> A bug-fix (or security-fix) of libev would not affect perl-EV without
> rebuilding perl-EV. Even rebuilding perl-EV isn't safe. There's no strict
> dependency, but only:
> 
>   BuildRequires:  libev-source >= %{version}
> 
> As a result, it is not ensured that a rebuild picks up the latest patched
> libev-source. Even a buildroot override would be needed.

I know all that. :)

Unbundling was a pre-requisite of the review request, though, and the
reviewer found the current solution more acceptable than keeping the
bundled libev in perl-EV.

I'm really just trying to fix all this mess here, so what do you think
would be the better solution?

Thanks,


-- 
Mathieu



More information about the devel mailing list