@@ -65,7 +65,7 @@ repository from where the RPM can be downloaded. We are purposefully not using t
6565Hat purls because the base URL can vary depending on whether packages are sourced from Red Hat-hosted repositories
6666(at _ cdn.redhat.com_ ), local Red Hat Satellite-mirrored repositories, or Cloud provider-hosted repositories. Instead,
6767Red Hat purls use a ` repository_id ` qualifier that identifies the repository from which the package can be
68- downloaded using YUM or DNF.
68+ downloaded using YUM or DNF.
6969
7070The repository ID is a unique value that identifies an RPM repository from where RPM packages can be fetched. If the
7171ID of the repository is the same and the other attributes of the RPM match, such packages even though sourced from
@@ -86,20 +86,17 @@ distribution versions.
8686[ RPM modules] ( https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_software_with_the_dnf_tool/assembly_distribution-of-content-in-rhel-9_managing-software-with-the-dnf-tool#con_modules_assembly_distribution-of-content-in-rhel-9 )
8787allow grouping a set of RPMs to represent a single component. Installing for example the ` nodejs ` module may result in
8888the installation of the ` c-ares ` library, the ` npm ` package manager, the ` nodejs ` runtime, among other RPM packages.
89- While RPM modules do not yet have an existing purl type, a proposal to add one called ` rpmmod ` has been submitted to
90- the purl specification that, but has not yet been merged as of today:
91- [ https://github.com/package-url/purl-spec/pull/199 ] ( https://github.com/package-url/purl-spec/pull/199 ) .
9289
93- RPM modules follow a slightly different naming convention than regular RPMs. Each RPM module can be identified using
94- [ NSVC] ( https://docs.fedoraproject.org/en-US/modularity/core-concepts/nsvca/#_forms ) : Name, Stream, Version, Context.
95- The purl for the ` squid:4 ` module available for RHEL 8.6 EUS would be the following:
90+ RPM modules do not an existing purl type. We most often want to refer to a specific RPM without a module, and rarely
91+ to the RPM module itself, therefore we use the RPM type to refer to the specific RPM, and add an ` rpmmod ` qualifier
92+ to specify the module. For example the purl for the ` libecap ` RPM in the ` squid:4 ` module available for RHEL 8.6 EUS
93+ would be the following:
9694
9795```
98- pkg:rpmmod /redhat/squid@4%3A8040020210420090912%3A522a0ee4? arch=ppc64le&repository_id=rhel-8-for-x86_64-appstream-eus-rpms__8_DOT_6
96+ pkg:rpm /redhat/libecap@1.0.1-2.module%2Bel8.1.0%2B4044%2B36416a77?rpmmod=squid:4:8030020200828070549:30b713e6& arch=ppc64le&repository_id=rhel-8-for-x86_64-appstream-eus-rpms__8_DOT_6
9997```
10098
101- The version string is a percent-encoded value that contains the Stream, Version, and Context:
102- ` 4:8040020210420090912:522a0ee4 ` .
99+ The RPM module Name, Stream, Version, and Context can be parsed from ` squid:4:8030020200828070549:30b713e6 ` .
103100
104101## Identifying container images
105102
0 commit comments