Project

Profile

Help

Issue #7673

Support synchronization of upstream repos with minimal Release file fields including for flat repos

Added by quba42 about 1 year ago. Updated about 1 month ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
-
Sprint/Milestone:
Start date:
Due date:
Estimated time:
(Total: 0:00 h)
Severity:
2. Medium
Version - Debian:
Platform Release:
Target Release - Debian:
OS:
Triaged:
No
Groomed:
No
Sprint Candidate:
No
Tags:
Katello
Sprint:
Quarter:

Description

The debian repo format specification (https://wiki.debian.org/DebianRepository/Format#A.22Release.22_files) states that: "Servers shall provide [...] (Release files) with at least the following keys:"

  • Suite and/or Codename
  • Architectures
  • Components
  • Date
  • SHA256

However, it is also stated that: "Clients may accept [...] Release files without the fields required for servers. They might reject Release files that do not contain at least one of the fields defined herein."

This results in the following conundrum: Should pulp_deb be able to synchronize repositories that do not meet the minimum requirements for servers, but nevertheless work for (most) APT clients?

My personal opinion, is that if APT clients are capable of consuming some upstream repository, then pulp_deb should make a reasonable effort to support that repository structure. In the real world, users will expect to be able to synchronize all repositories that they know to work for their APT clients and people publishing APT repositories will consider their repositories "valid" once they have tested them against an APT client as well.

Currently, pulp_deb does not care about the presence of Date, and Suite fields, so that is not an issue. IMHO, a Release file without the SHA256 field (or some alternate checksum field) does not make any sense and should not be supported. We currently require a Codename field, but I think it would not be so difficult to drop this requirement.

Supporting repos without an Architectures and/or Components field, would be very difficult, since those are (normally) part of the path to the package indecies (Packages files) (and also deeply embedded in our code). However, the exception is repositories using "Flat repository structure": https://wiki.debian.org/DebianRepository/Format#Flat_Repository_Format


Subtasks

Issue #7886: Make Codename field optionalCLOSED - CURRENTRELEASEActions

Related issues

Related to Debian Support - Story #7502: As a user I want to sync upstream repositories using "Flat Repository Format"CLOSED - CURRENTRELEASE

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

Associated revisions

Revision 066a2deb View on GitHub
Added by quba42 3 months ago

Make flat repo syncs more robust

Closes #7673 https://pulp.plan.io/issues/7673

With this change flat repo syncs will work even if the upstream Release file contains no "Components" or "Architectures" fields. In addition we are ensuring flat repo syncs do not attempt to sync installer files or packages.

History

#1 Updated by quba42 about 1 year ago

  • Related to Story #7502: As a user I want to sync upstream repositories using "Flat Repository Format" added

#2 Updated by quba42 about 1 year ago

Note: This problem was first identified during work on "Flat repository structure" using the following upstream repository as a test case: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/

#3 Updated by pulpbot 5 months ago

  • Status changed from NEW to POST

#4 Updated by quba42 4 months ago

#5 Updated by quba42 3 months ago

  • Subject changed from Support synchronization of upstream repos with minimal Release file fields to Support synchronization of upstream repos with minimal Release file fields including for flat repos

#6 Updated by quba42 3 months ago

#7 Updated by quba42 3 months ago

  • Status changed from POST to MODIFIED

#8 Updated by quba42 about 1 month ago

  • Sprint/Milestone changed from Katello to 2.16.0

#9 Updated by pulpbot about 1 month ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Please register to edit this issue

Also available in: Atom PDF