On Mon, Aug 13, 2012 at 1:00 PM, Olivier Blin <[email protected]> wrote:
> Guillaume Rousse <[email protected]> writes:
>
>> Le 13/08/2012 13:02, Colin Guthrie a écrit :
>>> 'Twas brillig, and Pascal Terjan at 13/08/12 11:44 did gyre and gimble:
>>>> On Sun, Jul 22, 2012 at 12:00 AM, Iurt the rebuild bot
>>>> <[email protected]> wrote:
>>>>> Name        : coreutils                    Relocations: (not relocatable)
>>>>> Version     : 8.17                              Vendor: Mageia.Org
>>>>> Release     : 2.mga3                        Build Date: Sat 21 Jul 2012 
>>>>> 09:49:45 PM CEST
>
> [...]
>
>>>>> colin <colin> 8.17-2.mga3:
>>>>> + Revision: 273158
>>>>> - Update for usrmove
>>>>
>>>> This broke a few packages requiring /bin/rm or /bin/ln which are no
>>>> longer provided by coreutils
>>>>
>>>> apache-portlet-1.0-api-javadoc (from apache-portlet-1.0-api)
>>>> esmska-javadoc (from esmska)
>>>> mx4j
>>>> regexp-javadoc (from regexp)
>>>> rt
>>>> tomcat5-admin-webapps (from tomcat5)
>>>
>>> Hmm, indeed. How are these things "Provided" anyway? I mean they are not
>>> in the list of the --provides, so how is this resolved? Does rpm have a
>>> special mode for detecting these kind of provides? If so how does it
>>> resolve it with urpmi?
>> Unless something changed, files dependencies are resolved at
>> hdlist-generation time as soon as another package requires them.
>
> Yes, using the file-deps file.
>
>> For instance, the following line in RT spec file will make genhdlist
>> map /bin/rm to coreutils in the hdlist.cz:
>> Requires(postun): /bin/rm
>
> IIRC, if a package contains files listed in file-deps, these files are
> added to its "provides" list by genhdlist.
>
> $ zcat
> /distrib/mageia/distrib/2/x86_64/media/core/release/media_info/synthesis.hdlist.cz
> | grep -A 6 '^\@provides.*\@/bin/rm'
> @provides@mktemp[== 8.15]@stat[==
> 8.15]@/usr/bin/env@/bin/[email protected]()(64bit)@coreutils[==
> 8.15-1.mga2]@coreutils(x86-64)[==
> 8.15-1.mga2]@/bin/rm@/bin/ls@/bin/stty@/usr/bin/tr@/bin/ln@/bin/cp
> @conflicts@tetex[< 1.0.7-49]
> @obsoletes@mktemp[< 8.15]@base64
> @requires@pam[>=
> 0.66-12]@libacl.so.1()(64bit)@libattr.so.1()(64bit)@libc.so.6()(64bit)@libc.so.6(GLIBC_2.14)(64bit)@libc.so.6(GLIBC_2.2.5)(64bit)@libc.so.6(GLIBC_2.3)(64bit)@libc.so.6(GLIBC_2.3.4)(64bit)@libc.so.6(GLIBC_2.4)(64bit)@libc.so.6(GLIBC_2.6)(64bit)@libc.so.6(GLIBC_2.7)(64bit)@libcap.so.2()(64bit)@libgmp.so.10()(64bit)@libpam.so.0()(64bit)@libpam_misc.so.0()(64bit)@libpthread.so.0()(64bit)@libpthread.so.0(GLIBC_2.2.5)(64bit)@libpthread.so.0(GLIBC_2.3.2)(64bit)@librt.so.1()(64bit)@librt.so.1(GLIBC_2.2.5)(64bit)@librt.so.1(GLIBC_2.3.3)(64bit)@rtld(GNU_HASH)
> @summary@The GNU core utilities: a set of tools commonly used in shell
> scripts
> @filesize@1803563
> @[email protected]_64@0@12798923@System/Base
>
>> I don't know how this work at rpm level, tough, in order to make 'rpm
>> -Uvh rt-4.0.6-1.mga3.noarch" work without urpmi support. Probably
>> checking in the list of files available in the target rpm.
>
> rpm is likely using the list of files from its db
>
> $ rpm -q --provides coreutils | grep /bin/rm
> $ rpm -q --whatprovides /bin/rm
> coreutils-8.17-3.mga3

Yes rpm uses the list of files to satisfy provides, urpmi does not
when using synthesis as synthesis does not contain the list of files

Reply via email to