Dependency tag types for REP 127

166 views
Skip to first unread message

Tully Foote

unread,
Sep 18, 2012, 8:20:53 PM9/18/12
to ros-sig-b...@googlegroups.com
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

William Woodall

unread,
Sep 18, 2012, 8:58:22 PM9/18/12
to ros-sig-b...@googlegroups.com
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.

--


Tully

--
You received this message because you are subscribed to the Google Groups "ROS Buildsystem Special Interest Group" group.
To post to this group, send email to ros-sig-b...@googlegroups.com.
To unsubscribe from this group, send email to ros-sig-buildsy...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
William Woodall
Willow Garage - Software Engineer

Reply all
Reply to author
Forward
0 new messages