Bug#942104: release.debian.org: Will fail if "Suite" field is missing
Control: tag -1 + patch On Thu, 10 Oct 2019, Ansgar wrote: > https://wiki.debian.org/DebianRepository/Format#A.22Release.22_files > says one of Suite and Codename is required. Codename itself is not required. Ok. > I wouldn't be surprised if many tools just use one and assume it always > exists and would recommend to always provide both. Well, that's not really an option for me right now. Because APT will just complain if you add a "Suite" when it was missing before hand. In any case, here's a suggested patch (attached). Cheers, -- Raphaël Hertzog ◈ Debian Developer Support Debian LTS: https://www.freexian.com/services/debian-lts.html Learn to master Debian: https://debian-handbook.info/get/ >From 31acf2e02241082e6bce5419cabb42e8ab950775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= Date: Thu, 10 Oct 2019 15:00:00 +0200 Subject: [PATCH] Fall back to codename if Suite is not available --- britney2/inputs/suiteloader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/britney2/inputs/suiteloader.py b/britney2/inputs/suiteloader.py index 665b66f..ae77785 100644 --- a/britney2/inputs/suiteloader.py +++ b/britney2/inputs/suiteloader.py @@ -143,8 +143,8 @@ class DebMirrorLikeSuiteContentLoader(SuiteContentLoader): release_file = None if release_file is not None: -suite.name = release_file['Suite'] -self.logger.info("Using suite name from Release file: %s", release_file['Suite']) +suite.name = release_file.get('Suite', release_file['Codename']) +self.logger.info("Using suite name from Release file: %s", suite.name) def _check_release_file(self, target_suite, missing_config_msg): try: -- 2.23.0
Bug#942104: release.debian.org: Will fail if "Suite" field is missing
> britney assumes that if you have a Release file, it will contain a "Suite" > field. That's not true, the "Codename" entry is required but the "Suite" > one is optional. https://wiki.debian.org/DebianRepository/Format#A.22Release.22_files says one of Suite and Codename is required. Codename itself is not required. I wouldn't be surprised if many tools just use one and assume it always exists and would recommend to always provide both. Ansgar
Bug#942104: release.debian.org: Will fail if "Suite" field is missing
Package: release.debian.org Severity: normal User: release.debian@packages.debian.org Usertags: britney britney assumes that if you have a Release file, it will contain a "Suite" field. That's not true, the "Codename" entry is required but the "Suite" one is optional. Please handle properly that case: [...] I: [2019-10-10T12:39:21+] - Loading source packages from /srv/repo.kali.org/ftp/kali/dists/kali-dev/non-free/source/Sources.gz Traceback (most recent call last): File "./britney.py", line 1529, in Britney().main() File "./britney.py", line 284, in __init__ self.__parse_arguments() File "./britney.py", line 463, in __parse_arguments self.suite_info = suite_loader.load_suites() File "/srv/repo.kali.org/tools/britney2/britney2/inputs/suiteloader.py", line 116, in load_suites self._update_suite_name(suite) File "/srv/repo.kali.org/tools/britney2/britney2/inputs/suiteloader.py", line 146, in _update_suite_name suite.name = release_file['Suite'] KeyError: 'Suite' Cheers, -- System Information: Debian Release: bullseye/sid APT prefers oldoldstable APT policy: (500, 'oldoldstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled