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