|Dependency tag types for REP 127||Tully Foote||9/18/12 5:20 PM|
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:
For Debian the following tags are applicable:
The existing proposal suggested:
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.
|Re: Dependency tag types for REP 127||William Woodall||9/18/12 5:58 PM|
Also, additional, platform specific information can always be added in the bloom release repository. So if these six tags don't cover a specific use case then you can always add them in the release process as patches. This could take the form of manual patches or additional parameters to command like git-bloom-generate-debian.
Willow Garage - Software Engineer