fedora: Update versions in packages dict provided as loader argument
In a similar way to the debian lister, use the following versions in the packages dictionary provided to the generic rpm loader: - dict keys are package versions prefixed by the fedora release and edition they have been found (fedora{release}/{edition}/{version}), they will be used as branch names targeting releases in the snapshot created by the rpm loader - version fields in dict values are the package intrinsic versions parsed from package repository metadata excluding any ".fcXY" suffixes to avoid the loader to create multiple releases targeting the same directory, they will be used as release names in the snapshot created by the rpm loader Related to T4448
This commit is contained in:
parent
065b3f81a1
commit
f4aafe026b
2 changed files with 21 additions and 24 deletions
|
@ -170,14 +170,23 @@ class FedoraLister(Lister[FedoraListerState, FedoraPageType]):
|
|||
for pkg_metadata in page:
|
||||
# extract package metadata
|
||||
package_name = pkg_metadata.name
|
||||
package_version = pkg_metadata.version
|
||||
package_version = pkg_metadata.vr
|
||||
package_version_split = package_version.split(".")
|
||||
if package_version_split[-1].startswith("fc"):
|
||||
# remove trailing ".fcXY" in version for the rpm loader to avoid
|
||||
# creating multiple releases targeting same directory
|
||||
package_version = ".".join(package_version_split[:-1])
|
||||
|
||||
package_build_time = get_last_modified(pkg_metadata)
|
||||
package_download_path = pkg_metadata.location
|
||||
|
||||
# build origin url
|
||||
origin_url = self.origin_url_for_package(package_name)
|
||||
# create package version key as expected by the fedora (rpm) loader
|
||||
package_version_key = pkg_metadata.vr
|
||||
package_version_key = (
|
||||
f"fedora{self.current_release}/{self.current_edition}/"
|
||||
f"{package_version}"
|
||||
).lower()
|
||||
|
||||
# this is the first time a package is listed
|
||||
if origin_url not in self.listed_origins:
|
||||
|
@ -205,8 +214,6 @@ class FedoraLister(Lister[FedoraListerState, FedoraPageType]):
|
|||
"name": package_name,
|
||||
"version": package_version,
|
||||
"url": urljoin(page.baseurl, package_download_path),
|
||||
"release": self.current_release,
|
||||
"edition": self.current_edition,
|
||||
"buildTime": package_build_time.isoformat(),
|
||||
"checksums": get_checksums(pkg_metadata),
|
||||
}
|
||||
|
|
|
@ -40,11 +40,9 @@ def rpm_url(release, path):
|
|||
def pkg_versions():
|
||||
return {
|
||||
"https://src.fedoraproject.org/rpms/0install": {
|
||||
"2.11-4.fc26": {
|
||||
"fedora26/everything/2.11-4": {
|
||||
"name": "0install",
|
||||
"version": "2.11",
|
||||
"release": 26,
|
||||
"edition": "Everything",
|
||||
"version": "2.11-4",
|
||||
"buildTime": "2017-02-10T04:59:31+00:00",
|
||||
"url": rpm_url(26, "0/0install-2.11-4.fc26.src.rpm"),
|
||||
"checksums": {
|
||||
|
@ -55,22 +53,18 @@ def pkg_versions():
|
|||
}
|
||||
},
|
||||
"https://src.fedoraproject.org/rpms/0xFFFF": {
|
||||
"0.3.9-15.fc26": {
|
||||
"fedora26/everything/0.3.9-15": {
|
||||
"name": "0xFFFF",
|
||||
"version": "0.3.9",
|
||||
"release": 26,
|
||||
"edition": "Everything",
|
||||
"version": "0.3.9-15",
|
||||
"buildTime": "2017-02-10T05:01:53+00:00",
|
||||
"url": rpm_url(26, "0/0xFFFF-0.3.9-15.fc26.src.rpm"),
|
||||
"checksums": {
|
||||
"sha256": "96f9c163c0402d2b30e5343c8397a6d50e146c85a446804396b119ef9698231f"
|
||||
},
|
||||
},
|
||||
"0.9-4.fc36": {
|
||||
"fedora36/everything/0.9-4": {
|
||||
"name": "0xFFFF",
|
||||
"version": "0.9",
|
||||
"release": 36,
|
||||
"edition": "Everything",
|
||||
"version": "0.9-4",
|
||||
"buildTime": "2022-01-19T19:13:53+00:00",
|
||||
"url": rpm_url(36, "0/0xFFFF-0.9-4.fc36.src.rpm"),
|
||||
"checksums": {
|
||||
|
@ -79,11 +73,9 @@ def pkg_versions():
|
|||
},
|
||||
},
|
||||
"https://src.fedoraproject.org/rpms/2ping": {
|
||||
"4.5.1-2.fc36": {
|
||||
"fedora36/everything/4.5.1-2": {
|
||||
"name": "2ping",
|
||||
"version": "4.5.1",
|
||||
"release": 36,
|
||||
"edition": "Everything",
|
||||
"version": "4.5.1-2",
|
||||
"buildTime": "2022-01-19T19:12:21+00:00",
|
||||
"url": rpm_url(36, "2/2ping-4.5.1-2.fc36.src.rpm"),
|
||||
"checksums": {
|
||||
|
@ -213,11 +205,9 @@ def test_incremental_lister(
|
|||
# Add new version to the set of expected pkg versions:
|
||||
pkg_versions["https://src.fedoraproject.org/rpms/0xFFFF"].update(
|
||||
{
|
||||
"0.10-4.fc36": {
|
||||
"fedora36/everything/0.10-4": {
|
||||
"name": "0xFFFF",
|
||||
"version": "0.10",
|
||||
"release": 36,
|
||||
"edition": "Everything",
|
||||
"version": "0.10-4",
|
||||
"buildTime": "2022-01-19T19:13:53+00:00",
|
||||
"url": rpm_url(36, "0/0xFFFF-0.10-4.fc36.src.rpm"),
|
||||
"checksums": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue