diff -Nru python-distutils-extra-2.49/debian/changelog python-distutils-extra-2.50/debian/changelog --- python-distutils-extra-2.49/debian/changelog 2023-01-30 05:52:11.000000000 +0000 +++ python-distutils-extra-2.50/debian/changelog 2023-02-14 11:37:27.000000000 +0000 @@ -1,3 +1,12 @@ +python-distutils-extra (2.50) unstable; urgency=medium + + * Team upload. + * Fix KeyError on .egg-info files in debian directory (regression in 2.48) + * setup.py: Check that Debian version starts with DistUtilsExtra version + (LP: #1919004) + + -- Benjamin Drung Tue, 14 Feb 2023 12:37:27 +0100 + python-distutils-extra (2.49) unstable; urgency=medium * Add missing python3-setuptools Depends, fixes autopkgtest diff -Nru python-distutils-extra-2.49/DistUtilsExtra/auto.py python-distutils-extra-2.50/DistUtilsExtra/auto.py --- python-distutils-extra-2.49/DistUtilsExtra/auto.py 2023-01-30 05:52:11.000000000 +0000 +++ python-distutils-extra-2.50/DistUtilsExtra/auto.py 2023-02-14 11:37:27.000000000 +0000 @@ -81,13 +81,14 @@ # ignore packaging ignore_dirs = ['etc', 'DistUtilsExtra', 'debian'] - for f in src.copy(): - for d in ignore_dirs: - if f.startswith(d + os.path.sep): - src.remove(f) + def should_be_ignored(path: str) -> bool: + for ignore_dir in ignore_dirs: + if path.startswith(ignore_dir + os.path.sep): + return True # Also remove files from the .egg-info directory - if '.egg-info/' in f: - src.remove(f) + return '.egg-info/' in path + + src = {f for f in src if not should_be_ignored(f)} __cmdclass(attrs) __modules(attrs, src) diff -Nru python-distutils-extra-2.49/DistUtilsExtra/__init__.py python-distutils-extra-2.50/DistUtilsExtra/__init__.py --- python-distutils-extra-2.49/DistUtilsExtra/__init__.py 2023-01-30 05:52:11.000000000 +0000 +++ python-distutils-extra-2.50/DistUtilsExtra/__init__.py 2023-02-14 11:37:27.000000000 +0000 @@ -1 +1 @@ -__version__ = '2.39' +__version__ = '2.50' diff -Nru python-distutils-extra-2.49/setup.py python-distutils-extra-2.50/setup.py --- python-distutils-extra-2.49/setup.py 2023-01-30 05:52:11.000000000 +0000 +++ python-distutils-extra-2.50/setup.py 2023-02-14 11:37:27.000000000 +0000 @@ -1,26 +1,56 @@ #!/usr/bin/env python -from setuptools import setup +import pathlib +import re import sys -sys.path.insert(0, '.') +from setuptools import setup + +sys.path.insert(0, ".") from DistUtilsExtra import __version__ as pkgversion + +def get_debian_version() -> str: + """Look what Debian version we have.""" + changelog = pathlib.Path(__file__).parent / "debian" / "changelog" + with changelog.open("r", encoding="utf-8") as changelog_f: + head = changelog_f.readline() + match = re.compile(r".*\((.*)\).*").match(head) + if not match: + raise ValueError(f"Failed to extract Debian version from '{head}'.") + return match.group(1) + + +def _check_debian_version() -> None: + debian_version = get_debian_version() + if not debian_version.startswith(pkgversion): + print( + f"Error: Debian version '{debian_version}' does not" + f" start with DistUtilsExtra.__version__ '{pkgversion}'.", + file=sys.stderr, + ) + sys.exit(1) + + +_check_debian_version() + setup( - name = 'python-distutils-extra', - version = pkgversion, - author = 'Sebastian Heinlein, Martin Pitt', - author_email = 'sebi@glatzor.de, martin.pitt@ubuntu.com', - description = 'Add support for i18n, documentation and icons to distutils', - packages = ['DistUtilsExtra', 'DistUtilsExtra.command'], - license = 'GNU GPL', - platforms = 'posix', - entry_points = {"distutils.commands": [ - "build = DistUtilsExtra.command.build_extra:build", - "build_i18n = DistUtilsExtra.command.build_i18n:build_i18n", - "build_icons = DistUtilsExtra.command.build_icons:build_icons", - "build_help = DistUtilsExtra.command.build_help:build_help", - "clean_i18n = DistUtilsExtra.command.clean_i18n:clean_i18n", - "pylint = DistUtilsExtra.command.pylint:pylint", - ],}, + name="python-distutils-extra", + version=pkgversion, + author="Sebastian Heinlein, Martin Pitt", + author_email="sebi@glatzor.de, martin.pitt@ubuntu.com", + description="Add support for i18n, documentation and icons to distutils", + packages=["DistUtilsExtra", "DistUtilsExtra.command"], + license="GNU GPL", + platforms="posix", + entry_points={ + "distutils.commands": [ + "build = DistUtilsExtra.command.build_extra:build", + "build_i18n = DistUtilsExtra.command.build_i18n:build_i18n", + "build_icons = DistUtilsExtra.command.build_icons:build_icons", + "build_help = DistUtilsExtra.command.build_help:build_help", + "clean_i18n = DistUtilsExtra.command.clean_i18n:clean_i18n", + "pylint = DistUtilsExtra.command.pylint:pylint", + ] + }, )