Merge pull request #4346 from mstarzyk-mobica/long_url_backport_mbedtls_216

Backport 2.16: Allow changelog entries to have URLs exceeding 80 char limit.
This commit is contained in:
Gilles Peskine 2021-04-15 11:12:24 +02:00 committed by GitHub
commit 52d0b48f04
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -228,6 +228,8 @@ class ChangeLog:
# a version that is not yet released. Something like "3.1a" is accepted. # a version that is not yet released. Something like "3.1a" is accepted.
_version_number_re = re.compile(br'[0-9]+\.[0-9A-Za-z.]+') _version_number_re = re.compile(br'[0-9]+\.[0-9A-Za-z.]+')
_incomplete_version_number_re = re.compile(br'.*\.[A-Za-z]') _incomplete_version_number_re = re.compile(br'.*\.[A-Za-z]')
_only_url_re = re.compile(br'^\s*\w+://\S+\s*$')
_has_url_re = re.compile(br'.*://.*')
def add_categories_from_text(self, filename, line_offset, def add_categories_from_text(self, filename, line_offset,
text, allow_unknown_category): text, allow_unknown_category):
@ -246,12 +248,18 @@ class ChangeLog:
category.name.decode('utf8')) category.name.decode('utf8'))
body_split = category.body.splitlines() body_split = category.body.splitlines()
for line_number, line in enumerate(body_split, 1): for line_number, line in enumerate(body_split, 1):
if len(line) > MAX_LINE_LENGTH: if not self._only_url_re.match(line) and \
len(line) > MAX_LINE_LENGTH:
long_url_msg = '. URL exceeding length limit must be alone in its line.' \
if self._has_url_re.match(line) else ""
raise InputFormatError(filename, raise InputFormatError(filename,
category.body_line + line_number, category.body_line + line_number,
'Line is longer than allowed: Length {} (Max {})', 'Line is longer than allowed: '
len(line), MAX_LINE_LENGTH) 'Length {} (Max {}){}',
len(line), MAX_LINE_LENGTH,
long_url_msg)
self.categories[category.name] += category.body self.categories[category.name] += category.body