[Rpm-maint] [rpm-software-management/rpm] Add support for 'unless' rich dependencies (#314)

Michael Schroeder notifications at github.com
Fri Sep 1 14:05:13 UTC 2017

An (A unless B) dependency implements (A and not(B)). This kind is useful
for "or" type dependencies, e.g. "Conflicts" or "Supplements".

As "Conflicts: (A unless B)" is equivalent to "Requires: (B if A)", I
thought this type is not needed. But there is no such equivalence
for Supplements, thus the change in mind.

Like with "if" we also have a syntactic sugar "else" flavor:
(A unless B else C) is the same as ((A unless B) or (B and C))

This commit also makes the "else" handling code in depends.c much
easier to understand.
You can view, comment on, or merge this pull request online at:


-- Commit Summary --

  * Add support for 'unless' rich dependencies

-- File Changes --

    M lib/depends.c (36)
    M lib/order.c (2)
    M lib/rpmdb.c (4)
    M lib/rpmds.c (5)
    M lib/rpmds.h (7)

-- Patch Links --


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20170901/acdc140e/attachment.html>

More information about the Rpm-maint mailing list