-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[rpm] Add VMWare Photon Example #214
base: master
Are you sure you want to change the base?
Conversation
just for example purposes, to avoid confusion elsewhere.
@captn3m0, I'm drawing a bunch of inferences on what this one-line PR intends to convey, so please call me out if I inferred anything incorrectly or incompletely. The proposed example implies that, in the case of Photon, the value for For the record, we're discussing "Fedora" and "OpenSUSE" are used in the original examples. But is "Fedora" the "vendor" of "Fedora Linux"? Or is it "Fedora Project"? And "OpenSUSE Project" for the "OpenSUSE" distribution? In the case of Fedora and OpenSUSE, these might not be critical considerations since people know what "fedora" stands for. In the case of Photon, though, it means that one would consider "VMWare" as the namespace, hence this PR. However, I think that interpretation actually suggests the spec should evolve so the namespace is not the vendor but the distributor ID as per This would mean that the proposed example would actually read An alternative to this approach would be to use the vendor as defined for example in a CPE string. Using this definition, then So this brings up an interesting
The spirit behind this seems to be that Following this spirit, the appropriate If this is in fact the spirit and the logic that Of course, ambiguity can always be resolved with We might also want to recommend that Thank you for reading. I think we owe it to ourselves to do this analysis, but I recognize deciding between CPE vendors, distro names, entity names, etc., might be overthinking the problem. In general, I don't think |
I agree with most of the analysis, but this shouldn't be left to the end-users - I'm facing these conundrums everyday while generating PURLs). It should be made clear in the specification as to where the vendor/namespace are expected to be picked up from (such as deferring to /etc/os-release). Even if we pick /etc/os-release, there's still more issues, such as both centos linux and centos stream (which are quite different operating systems), both using the exact same details in the lsb-release, even down to the same CPE: endoflife-date/endoflife.date#1255 (comment) For differentiating between centos 8 and centos stream 8 packages, you need to encode this in the distro field (such as centos-8, centos-stream-8), but there's no guidance provided to RPM users currently on what forms this will take. Even in case of debian packages, there are scenarios where the PURL spec falls short, such as in the case of Debian ELTS:
In such case, imo - the distro should remain
From my usual understanding of the word "vendor", I'd just assumed this to mean "the supplier behind the package". "locate the package un-ambigiously" is something other fields also do, not just the vendor field, so it's not a clear definition. Either the specification should provide a clear definition of what vendor is supposed to be, or it should provide guidance as to how the field can be inferred (with appropriate fallbacks). imo, it is quite impossible for PURL to fulfill both of the obligations at the same time:
|
I'm not convinced the Debian ELTS example you provide is a shortcoming in I used the Debian ELTS example since I think the Stream example is extemporary post 8 and I don't understand enough about Stream to reason about how different the nano 2.9.8 in c8 was from the nano 2.9.8 in c8s. It's possible there's an RPM-specific tag that might help with such cases, but given what I've seen I'm not sure that's a namespace. Both of these examples are different from the vendor/provider problem discussed above and in the PR. I won't weigh in on your premises for purl success, but I appreciate the discussion and the edge cases because they will help users make the best out of an specification that is also improving. I'm also keeping an eye on https://github.com/scanoss/purl2cpe. These are exactly the type of ecosystem efforts I would expect to happen. |
See #195 |
just for example purposes, to avoid confusion elsewhere.
There are lots of ways to represent this that aren't as good:
pkg:rpm/photon/systemd?distro=vmware-photon-1
pkg:rpm/photon/systemd?distro=photon-1
pkg:rpm/systemd?distro=vmware-photon-1
pkg:rpm/systemd?distro=photon-1
However, the representation in the example should hopefully be clear and provide some guidance.