ttereshc wrote:
I can see a very naive approach - just "don't include package P in the pkglist for erratum B during upload, if you don't want it to be there".
I probably miss something obvious, I'd appreciate any clarification.
That won't work because it's meant to be present on the same erratum in some other repo, so it must appear in the erratum pkglist.
Let me give an example of the effect of this limitation with real errata shipped by Red Hat:
1. https://access.redhat.com/errata/RHBA-2017:0884 - Red Hat OpenShift Container Platform 3.5 RPM Release Advisory
Shipped 2017-04-12
This advisory is for OpenShift Container Platform 3.5 (only).
One of the packages included in this update was nodejs-4.7.2-1.el7.x86_64.rpm.
With this advisory alone there's no problem, but when combined with a later advisory...
2. https://access.redhat.com/errata/RHBA-2017:1828 - OpenShift Container Platform 3.5, 3.4, and 3.3 bug fix update
Shipped 2017-08-31
This advisory is for OpenShift Container Platform 3.3, 3.4, 3.5.
This advisory was intended to ship nodejs-4.7.2-1.el7.x86_64.rpm to "Red Hat OpenShift Container Platform 3.4" only.
But, because this advisory is also for OpenShift Container Platform 3.5, and because nodejs-4.7.2-1.el7.x86_64.rpm is also in the 3.5 repo, this RPM also appears in updateinfo for this advisory and in the "Updated Packages" section there under OpenShift 3.5 - even though the RPM was already present in the repo from 4 months ago and is not considered to be updated by this advisory. This is considered undesirable.
Hopefully the above is a clearer example of the use-case. RCM wanted to do:
- Ship an advisory for OpenShift 3.5 which includes nodejs-4.7.2-1.el7.x86_64.rpm.
- Later, ship another advisory for OpenShift 3.3, 3.4, 3.5, which includes nodejs-4.7.2-1.el7.x86_64.rpm for OpenShift 3.4.
Problem: the latter advisory appears as updating nodejs-4.7.2-1.el7.x86_64.rpm for OpenShift 3.5 even though that package was already present.
What is the suggested criteria for Pulp to decide whether to include package P in erratum A or in erratum B?
When filing this I had expected that it might need a schema change.
However, after writing out the example I'm now wondering if we can say the criteria should be: if an RPM appears in pkglist of multiple errata in the repo, it's only rendered for the erratum unit with the earlier association datetime.