Packaging changes for libev in Rawhide

Michael Schwendt mschwendt at gmail.com
Tue Nov 19 13:38:32 UTC 2013


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.


More information about the devel mailing list