Based on the discussion we've reviewed the various dependency types supported by dpkg and rpm packages.
For RPMs we found the following tags related to dependency types:
BuildPreReq
Requires
BuildRequires
Provides
Conflicts
Obsoletes
Serial
Autoreqprov
Excludearch
For Debian the following tags are applicable:
Depends
Pre-Depends
Recommends
Suggests
Enhances
Breaks
Conflicts
Provides
Replaces
Build-Depends
Build-Depends-Indep
Build-Conflicts
Build-Conflicts-Indep
The existing proposal suggested:
build
buildtool
run
test
The "run" type maps to Requires and Depends respectively.
The "build" and "buildtool" both map to BuildRequires and Build-Depends respectively
And the "test" depends is not used in packaging.
There are many declarations with varying levels of precision. In reviewing the fields the critical ones which are not covered above and is common to rpm and dpkg seems to be conflict resolution and replacment packages.
To resolve this we propose to add support for:
"conflict" mapping to Conflicts for both rpms and dpkg
"replace" mapping to Obsoletes and Replaces respectively.
The other flags listed above for rpm and dpkg are subtly different or provide useful but not necessary features, and several of them do not have generic analogs, such as the Suggests/Enhances/Recommends set from dpkg. To keep things simple I propose to initially support the above 6 tags. We can add new tags to support new functions in the future. However in the mean time keeping number of options to debug lower at the moment seems more valuable than trying to cover the superset of all other packagers, without driving use cases.
Tully