[Fedora-packaging] Question about how libgcj-devel requires zlib
Ralf Corsepius
rc040203 at freenet.de
Tue Sep 23 11:25:08 UTC 2008
On Tue, 2008-09-23 at 12:54 +0300, Panu Matilainen wrote:
> On Tue, 23 Sep 2008, Ralf Corsepius wrote:
>
> > On Tue, 2008-09-23 at 09:49 +0300, Panu Matilainen wrote:
> >> On Tue, 23 Sep 2008, Ralf Corsepius wrote:
> >>
> >>> On Tue, 2008-09-23 at 09:18 +0300, Panu Matilainen wrote:
> >>>> The new rpm in rawhide adds ISA provides (ie the (x86-32) stuff")
> >>>> automatically for all non-noarch packages (including subpackages), all
> >>>> that's needed is rebuild. So every package rebuilt since rpm 4.5.90.x
> >>>> landed in rawhide already has them.
> >>>>
> >>>> The main use-cases for this feature are:
> >>>> a) -devel package dependencies on other -devel packages
> >>>> b) BuildRequires
> >>>> c) manual dependencies for plugins and such
> >>> Which kinds of problems does this solve?
> >>
> >> If it wasn't obvious from the list above...
> >> a) foo-devel requires bar-devel. Currently bar-devel.i386 is sufficient to
> >> satisfy foo-devel.x86_64 which is obviously not correct.
> > bug in rpm's version comparison => Your addition doesn't solve it.
>
> No. There hasn't been a way to specify dependency on certain architecture,
Exactly: This is the BUG in *RPM*.
> rpm has no way of knowing if "foo" in "Requires: foo" is supposed to be
> same arch or not.
Right, but it could (and should have done so for ages) The information
is present.
> Sure it would be possible to teach rpm to grok the name.arch syntax for
> (build)requires too, but it would require changing every depsolver to
> understand it too,
Correct, that's another bug. The depsolver should be part of RPM.
> >> c) A package depends on a dlopen()'ed plugin, say "foo-plugin". The plugin
> >> needs to be of compatible arch to work, quite obviously. The only way to
> >> express this correctly right now is to use file dependencies on
> >> %{_libdir}/something.
> > Correct. You don't solve anything that file-deps would not solve.
> >
> >>> So far I don't see any. Conversely, AFAIU all this does, is to add more
> >>> incompatibilities, more rpmdb entries, all for information which already
> >>> is hidden somewhere else.
> >>
> >> So you'd rather change all -devel and build dependencies to
> >> %{_libdir}/libfoo.so file dependencies?
> > Correct. I think, all what these rpm meta-tag do is to add pollution to
> > the rpmdb, to solve a problem to which file-deps would be an already
> > existing "natural solution", because they actually are file deps at
> > run-time.
>
> Except there isn't always an "arch-specific" file you can depend on.
And where is the problem?
A "client" package which depends on some "provider" almost always
depends on the provider to provide a file,
no matter what this file actually is.
I.e. you hardly ever need the "architecture", you almost always need the
file and nothing else.
> Often
> there is, but not always. File-dependencies are more expensive to
> look up than regular provides.
Wrong. Inside of rpm everything is database lookups. Whether these are
file-deps or artificial provides doesn't matter. Whether rpm/yum etc.
handle them efficiently, is a different matter.
> If file dependencies on things like
> /usr/lib64/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64_3.3.2.v3349.jar
> are so wonderfully perfect solution to the problem at hand, I wonder why
> people aren't using them for everything then.
Lack of insight, people being subject to FUD/propaganda for years?
People being confused by the very few corner cases (SONAMES)?
Ralf
More information about the Fedora-packaging
mailing list