package names in dependencies

Elan Ruusamäe glen at pld-linux.org
Tue Mar 23 16:39:40 CET 2021


On 23.03.2021 12:59, Neal Gompa wrote:
> On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe <glen at pld-linux.org> wrote:
>> i found some odd inconsistency:
>>
>>
>> error: line 319: Illegal char ')' (0x29) in: Obsoletes: virtual(init-daemon)
>> error: line 319: Only package names are allowed in Obsoletes:
>> Obsoletes:        virtual(init-daemon)
>>
>>
>> So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some
>> other tags;
>>
>>
>> Requires:   webserver(indexfile)
>> Requires:   webserver(php) >= 4.2.0
>> Suggests:   php(openssl)
>> Suggests:   webserver(setenv)
>> Provides:   group(eventum)
>> Provides:   user(eventum)
>>
> Obsoletes has to be a real package name, but virtual names are allowed
> for other tags.
Why?
> This was always the case in RPM, but it started enforcing it in RPM 4.13.

PLD has used virtual obsoletes for the time i've used it (since 2004).

and we are using it when multiple packages provide something common, say:

'init-daemon"

they are mutually exclusive, so installing one, must uninstall the other.

and if adding new "virtual(init-daemon)" virtual, without need to update 
other packages, they all can have O/P: virtual(init-daemon)


now rpm enforces that each of those packages must cross reference all 
'the other' virtuals... duh!




More information about the pld-devel-en mailing list