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