Recursive copy doesn't solve rich dependencies correctly
There are recursive and recursive_conservative flags which can be specified during copy.
When recursive_conservative flag is set to True, rich and weak dependencies are resolved properly.
When recursive flag is set to True, rich dependencies are NOT resolved properly, weak dependencies are resolved properly.
Cobbler package from the fixtures repo:
<rpm:requires> <rpm:entry name="(Scotch = 8-10 and contireau = 2-10 and tablespoon-sugar = 1-0)"/> <rpm:entry name="icecubes"/> </rpm:requires> <rpm:recommends> <rpm:entry name="(orange-bits if fruity)"/> </rpm:recommends>
From the dependencies above it's clear that due to
and operator all the packages are required, but only
Scotch is copied and not
pulp-admin rpm repo create --repo-id foo --feed https://repos.fedorapeople.org/pulp/pulp/fixtures/rpm-richnweak-deps/ pulp-admin rpm repo sync run --repo-id foo pulp-admin rpm repo create --repo-id bar pulp-admin rpm repo copy rpm --from-repo-id foo --to-repo-id bar --str-eq name=Cobbler --recursive This command may be exited via ctrl+c without affecting the request. [\] Running... Copied: Cobbler-1-0-noarch Scotch-8-10-noarch icecubes-2-3-noarch orange-bits-2-3-noarch