Bug#942104: release.debian.org: Will fail if "Suite" field is missing

2019-10-10 Thread Raphael Hertzog
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

2019-10-10 Thread Ansgar
> 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

2019-10-10 Thread Raphaël Hertzog
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