dependency lookup failures
Vincent Danen
vdanen at annvix.org
Sun Apr 29 23:29:36 PDT 2007
* Paulo Trezentos <Paulo.Trezentos at caixamagica.pt> [2007-04-30 00:06:59 +0000]:
>1.- What is the result you get if you try:
> apt-get install nfsidmap-devel>=0.16
>
>It doesn't work, right?
Actually, it looks like it does work:
[vdanen at build ~]$ sudo rpm -q libnfsidmap0-devel
package libnfsidmap0-devel is not installed
[vdanen at build ~]$ apt-get install nfsidmap-devel>=0.16
[vdanen at build ~]$ sudo rpm -q libnfsidmap0-devel
libnfsidmap0-devel-0.16-6159avx
But look at this:
[vdanen at build SPECS]$ sudo rpm -e libnfsidmap0-devel
[vdanen at build SPECS]$ sudo apt-get clean
[vdanen at build SPECS]$ sudo apt-get install nfsidmap-devel
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting libnfsidmap0-devel for 'nfsidmap-devel'
The following NEW packages will be installed:
libnfsidmap0-devel
0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 22.6kB of archives.
After unpacking 47.1kB of additional disk space will be used.
Get:1 ftp://build.annvix.ca i586/current libnfsidmap0-devel 0.16-6159avx [22.6kB]
Fetched 22.6kB in 0s (1135kB/s)
Committing changes...
Preparing... ########################################### [100%]
1:libnfsidmap0-devel ########################################### [100%]
Done.
Notice how the output is different? On the versioned install, there is
no output, and no indication that apt actually did anything, but on the
non-versioned install, I see the output I would normally expect.
>2.- Do "libnfsidmap0-devel" has a "Provides:" clause with
>"nfsidmap-devel"? If so, is "Provides: nfsidmap-devel" or
>"nfsidmap-devel = 0.16"
From the specfile:
%package -n %{libname}-devel
Summary: Static library and header files for the nfsidmap library
Group: Development/C
Requires: %{libname} = %{version}
Provides: libnfsidmap-devel = %{version}
Provides: nfsidmap-devel = %{version}
I try to use versioned provides as much as possible because I find it
more consistent (although I probably don't have every single Provides in
every single package versioned).
>I'm not see any problem in imposing a version ( nfsidmap-devel>=0.16) to
>a virtual package (or a "provides") although sometimes doesn't make
>sense ("requires: mta" example where it might be sendmail or qmail).
No, for something like that it wouldn't make sense. But if I need a
specific version of libnfsidmap-devel installed, it's easier to use
"Requires: libnfsidmap-devel >=0.16" than something like:
%ifarch x86_64
Requires: lib64nfsidmap0-devel >= 0.16
%else
Requires: libnfsidmap0-devel >= 0.16
%endif
Virtual provides are of far more value than just as a generic provides
(like "mta" or "webserver", etc.).
>But if it imposed, IMHO we should have in the provides which version is
>provided.
Yes, which is what I attempt to do (although I'd probably have to go
through the repository to correct the ones that are missing, as I'm sure
there are a few).
But that still doesn't explain why "install" works and "build-dep"
doesn't (other than what Panu has already indicated... that it's a known
deficiency in the build-dep support).
>> Another example, which illustrates that it's half-working:
>>
>> [vdanen at build SPECS]$ apt-get build-dep ../SRPMS/nfs-utils-1.0.10-7281avx.src.rpm
>> Reading Package Lists... Done
>> Building Dependency Tree... Done
>> Selecting libwrap0-devel for 'tcp_wrappers-devel'
>> E: Build-Depends dependency for ../SRPMS/nfs-utils-1.0.10-7281avx.src.rpm cannot be satisfied because no available versions of package nfsidmap-devel can satisfy version requirements
>> [vdanen at build SPECS]$ apt-get install nfsidmap-devel
>> Reading Package Lists... Done
>> Building Dependency Tree... Done
>> Selecting libnfsidmap0-devel for 'nfsidmap-devel'
>> The following extra packages will be installed:
>> libnfsidmap0 libnfsidmap0-devel
>> The following NEW packages will be installed:
>> libnfsidmap0 libnfsidmap0-devel
>> 0 upgraded, 2 newly installed, 0 removed and 6 not upgraded.
>> Need to get 44.0kB of archives.
>> After unpacking 84.4kB of additional disk space will be used.
>> Do you want to continue? [Y/n]
>>
>>
>> In this case, it properly finds that libwrap0-devel provides
>> tcp_wrappers-devel, but can't seem to figure out that libnfsidmap0-devel
>> provides nfsidmap-devel. The only thing I can think of is that
>> "build-dep" doesn't like checking for things with a version specified:
>>
>> BuildRequires: tcp_wrappers-devel
>> BuildRequires: nfsidmap-devel >= 0.16
>>
>> In this case, the libnfsidmap0-devel has a version of 0.16 so it should
>> be able to satisfy this just fine. Looking at the first example, it
>> seems like build-dep is tripping on the version requirements.
>>
>> Any ideas here?
--
Vincent Danen @ http://linsec.ca/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 186 bytes
Desc: not available
URL: <http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/attachments/20070430/373bbc03/attachment-0003.pgp>
More information about the Apt-Rpm
mailing list