sound problems

Kevin Kofler kevin.kofler at chello.at
Tue Jan 6 13:05:17 UTC 2009


Axel Thimm wrote:
> The reson I use these conventions is because they actually increase
> compatibility: When repo X, repo Y and repo Z (one of them may be
> Fedora, the others two 3rd party ones) have built foo, baz and wuz
> against libbar.so.1, libbar.so.2 and libbar.so.3 these runtime
> packages make sure that they can all coexist w/o one repo enforcing a
> full rebuild on the other.

Repos building against different versions of libbar are the actual problem
there. Your solution is a bad attempt at working around it (bad because it
can cause file conflicts between the differently-versioned packages -
library packages are not just a single .so.n file - and is also known to
confuse yum in other situations) which has not been considered useful by
Fedora (as the lack of success of your attempted guideline change shows).

> This will even help Fedora, as the reason Debian/Mandriva introduced
> them was for being able to cope with tons of packages when a
> dependency does an sobump.

In Fedora we already have a solution for that, it's called a mass rebuild.

> Currently in Fedora whenever a package with many dependent other
> packages changes soname, we need to go yelling around to other
> packagers

Which is the right solution. Otherwise the packages will not benefit from
bugfixes and improvements in the new version of the library.

> and are only able to do an upgrade of this kind in rawhide. 

No, we can do a grouped update with a library and all dependent packages.
(Buildroot overrides can be requested from rel-eng to build such grouped
updates.) Of course this doesn't make sense for something which almost
everything links, such as OpenSSL, but trying to upgrade such a library in
a release is just insane, it makes much more sense to settle on a single
version. Having packages require different versions of OpenSSL just because
they happened to be built at different times is not helpful, one version is
enough.

> So for Fedora I suggested it w/o looking at 3rd parties, but I'm using
> it at ATrpms for better 3rd party support.

IMHO you should follow the Fedora guidelines on this issue, which means that
you should only add version suffixes for non-default versions of the
library, and only add such non-default (compat or forward-compat) packages
where really needed (and no, "package X in repo Y was not rebuilt against
the new version" is not a real need, it should just get rebuilt; only if
this is not easily possible a compat package makes sense). In addition, the
common practice in Fedora is to use the user-visible version as the suffix,
not the soname version. Otherwise you end up with confusing nonsense such
as KDE 3 libraries in a package called kdelibs4. Sonames are what soname
autoprovs/autoreqs are for, not package names.

> See for example the x264 libs. Any 3rd party repo using them is doomed
> to be incompatible to the other one. Unless we would all use
> libfoo<so> style packaging.

Or unless the smaller repositories (e.g. ATrpms) just accept one large
repository (i.e. RPM Fusion) as the authority for x264 (and again: who was
first is really irrelevant here) and stop shipping incompatible x264
packages. Just build against the version in RPM Fusion. If you don't want
your repository to depend on RPM Fusion (which is IMHO a bad decision),
just re-sign or rebuild the package from RPM Fusion.

> In a nutshell: This is done for better compatibility, not worse.

I know this is the intention, but in practice it is rather unhelpful and
counterproductive. IMHO you should follow the Fedora guidelines closer,
even where you believe them to be technically inferior.

        Kevin Kofler




More information about the fedora-devel-list mailing list