+ PackageList result;
+ result.push_back(this);
+ for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+ {
+ PackageList r = (*i)->collect_requires();
+ result.splice(result.end(), r);
+ }
+
+ result.sort();
+ result.unique();
+
+ return result;