On Tue, Mar 23, 2021 at 12:27 PM Jakub Bogusz <qbo...@pld-linux.org> wrote:
>
> On Tue, Mar 23, 2021 at 12:18:36PM -0400, Neal Gompa wrote:
> > On Tue, Mar 23, 2021 at 11:39 AM Elan Ruusamäe <g...@pld-linux.org> wrote:
> > >
> > >
> > > On 23.03.2021 12:59, Neal Gompa wrote:
> > > > On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe <g...@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!
> > >
> >
> > RPM since RPM 4.10 supports mutual exclusion by using Provides + Conflicts.
> >
> > For example, the following is enough to get the behavior you want:
> >
> > Provides: init-daemon
> > Conflicts: init-daemon
>
> Uhm, AFAIR such combo was treated as self-conflict by some RPM-based package
> management software, thus making package non-installable...
>
> Does it have well defined semantics now?
>

Hmm, actually I was wrong, it was done in RPM 4.9.0:
https://rpm.org/wiki/Releases/4.9.0

As for "well-defined semantics", it's basically this mailing list
post: http://lists.rpm.org/pipermail/rpm-maint/2010-April/002719.html

It generally works for me, though admittedly, I've only tested YUM,
DNF, and Zypper.


--
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
pld-devel-en mailing list
pld-devel-en@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-en

Reply via email to