[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: rpmlib(VersionedDependencies) <= 3.0.3-1

On Thu, Apr 26, 2001 at 10:15:43AM +1000, Tim Bartley wrote:
> Hi,
> I''m building a package to which I just added a versioned dependency. Now,
> the following additional dependency appears to be automatically created as
> well:
> rpmlib(VersionedDependencies) <= 3.0.3-1

Yup. The dependency is tracking the use of syntax that will create a
package that won't work quite right with versions of rpm before 3.0.3.

> Consequently my package fails to install on versions of Linux with later
> versions of RPM whereas before adding my versioned dependency it installed
> fine.

Hmmm, details please. How does your package "fail to install"? Yes, the
dependency fails with rpm < 3.0.5, upgrade to rpm-3.0.5, or, if the
only failure, use --nodeps.

> Is this a bug in the version of RPM I'm using (should the dependency be >=
> 3.0.3-1)? Or do I just not understand why it makes sense to only be able to
> install packages with earlier versions of RPM rather than later versions?
> This seems backwards to me.

Not a bug. The dependency is written with <= so that the range is closed,
as >= would make the implicit promise "forever". Meanwhile, since the
matching capability is
	Provides: rpmlib(VersionedDependencies) = 3.0.3-1
there's only a single point covered by the overlapping dependency ranges.

> # rpm --version
> RPM version 3.0.5
> I also don't seem to be able to find out what version of
> rpmlib(VersionedDependencies) is provided on a system e.g.
> # rpm -q --provides 'rpmlib(VersionedDependencies)'
> package rpmlib(VersionedDependencies) is not installed
> # rpm -q --provides rpmlib
> package rpmlib is not installed

Yup. rpm --showrc displays the internal dependencies, provided by
rpmlib itself, not by a package:

Features supported by rpmlib:
    rpmlib(VersionedDependencies) = 3.0.3-1
	PreReq:, Provides:, and Obsoletes: dependencies support versions.
    rpmlib(CompressedFileNames) = 3.0.4-1
	file names stored as (dirName,baseName,dirIndex) tuple, not as path.
    rpmlib(PayloadIsBzip2) = 3.0.5-1
	package payload compressed using bzip2.
    rpmlib(PayloadFilesHavePrefix) = 4.0-1
	package payload files have "./" prefix.
    rpmlib(ExplicitPackageProvide) = 4.0-1
	package name-version-release not implicitly provided.
    rpmlib(HeaderLoadSortsTags) = 4.0.1-1
	header tags are always sorted after being loaded.

> I am an RPM newbie so I'm probably just missing something fundamental here.
> Can someone explain to me how I can get around this? Do I simply have to
> remove my own versioned dependency so this goes away? How are versioned
> dependencies supposed to be used? It seems to me that they're not useful if
> they always bring in this '<= <some RPM version>' restriction (which is how
> I interpret the above). I want to be able to specify a version rather than
> just the package because I know earlier versions of the package I prereq
> are broken.

The dependency is not the problem, the underlying incompatibility being
tracked in legacy versions of rpm is the problem. rpmlib(...) dependencies
are not for general use, they try to insure that packages are installed by
a version of rpm that can handle the packaging.

73 de Jeff

Jeff Johnson	ARS N3NPQ
jbj@jbj.org	(jbj@redhat.com)
Chapel Hill, NC

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []