Packaging Guidelines changes for Change: Adopt PURL Metadata #1536
Labels
No labels
announce
bootstrap
Closed As
accepted
Closed As
duplicate
Closed As
exceptionexpired
Closed As
fixed
Closed As
invalid
Closed As
nothingtodo
Closed As
permanentexception
Closed As
rejected
Closed As
temporaryexception
Closed As
wontfix
cmake
committee
draftneeded
hasdraft
meeting
meson
needinfo
Priority
In Committee
Priority
Needs Review
Priority
Waiting For Reporter
rust
writeup
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
packaging/guidelines#1536
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I'm in the process of submitting a Change proposal that has the goal of adding virtual Provides to built packages that follows the PURL (Package-URL) specification. There will likely need to be adaptations and additions to the Packaging Guidelines to account for this change (if approved), so I am required to file a ticket / PR before I publish the Change Proposal.
Current draft: https://fedoraproject.org/wiki/Changes/Adopt_PURL_Metadata
The TL;DR version of what's planned:
This could potentially be extended to
bundled(...)Provides, which currently don't use a consistent format at all:This was discussed in the meeting today (log) and here is what the AI summary had to say:
Providessyntax,purl(pkg:cargo/libc@0.2.186), includes the version in the name, making it unusable for dependency resolution and difficult to query.purl(pkg:cargo/libc) = 0.2.186was considered, but it faces issues with RPM's version string restrictions (e.g., no dashes), which are common in upstream semantic versioning.Providesmechanism with metadata not used for dependency resolution, as it increases metadata size for all users.Personally, I very much support this proposal, as I hope it'll help the security bug nightmare, but I think the way versions are handled could use discussion. I don't think changing, e.g., the cargo dependency generator to start depending on the
purl(..)Provides instead ofcraste(..)is part of this proposal, and querying whatprovidespurl(pkg:cargo/libc@*)isn't so difficult, but I figured it was worth bringing up./me pops in from "vacation" to address some feedback from the meeting:
purl(pkg:...) = 0.1.2format (the "version" part of the PURL is optional, so this would be valid) but ultimately decided against it, exactly for some of the reasons that were mentioned during the meeting (it mixes PURL and RPM syntax, and some upstream version strings are not necessarily uniquely representable as RPM version strings)Requires: bundled(foo)if you neededfoo, that just wouldn't make any sense.No, the URL scheme in PURL is defined as
pkg(other URL schemes are "http" or "ftp", replacing it would make it a different URL scheme, but no longer PURL. :)Yes. Making an RPM provide its own PURL representation would be a bit redundant. That would look like
pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25though (copied from the upstream README).Side note: I'm not sure all these symbols are even allowed in RPM names ... but that might be a bridge that we can postpone crossing.
I read tickets in the PURL spec repo, and it looks like there's currently only a "legacy" Go type in the spec that doesn't cover Go modules. It might be nice to propose a new "type" for the spec that covers those. (This is the reason why Go packages aren't listed as initial targets in the Change Proposal doc.)