Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: report...@packages.debian.org, nis.marten...@web.de
Control: affects -1 + src:reportbug
Please pre-approve package reportbug (pre-upload)
[ Reason ]
Paul Gevers asked if we can have a version of reportbug that prevents
bug 992332 from happening again in bookworm. I'd like to use the
opportunity to include a few other small fixes as well if possible.
[ Impact ]
- Developers will be able to file bookworm-pu requests (#1034260)
- Developers will be able to file unblock requests for udeb-only
packages (#1034143)
- Reportbug won't get package names wrong in unblock requests if the
requested package name contains regex characters (#1031924)
- A developer preparing a reportbug release will be prevented from
uploading a package version that is not PEP440 compliant.
- Kernel info compiled by reportbug will consider an updated linux
kernel taint list.
[ Tests ]
There are no automated tests for the changes. All except the taint list
change have been tested manually.
[ Risks ]
Risks should be low. I'm filing this unblock request using the new
reportbug version that I'm planning to upload.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
Are the proposed changes okay to be uploaded?
diff -Nru reportbug-11.6.0/debian/changelog reportbug-12.0.0/debian/changelog
--- reportbug-11.6.0/debian/changelog 2022-12-04 19:28:36.000000000 +0100
+++ reportbug-12.0.0/debian/changelog 2023-04-17 13:20:18.000000000 +0200
@@ -1,3 +1,27 @@
+reportbug (12.0.0) unstable; urgency=medium
+
+ [ Benjamin Drung ]
+ * Make Python version PEP440 compliant
+
+ [ Paul Wise ]
+ * Update Linux kernel taint list and location
+
+ [ Nis Martensen ]
+ * debian/control: update standards-version (no changes needed)
+ * reportbug.utils.get_package_status: force literal package name match when
+ calling apt-cache show. Thanks to David Kalnischkies for comprehensive
+ explanations on apt's command line argument features.
+ (Closes: #1031924)
+
+ [ Roland Clobus ]
+ * reportbug.debbugs.check_package_info: fix crash with udeb-only pkg
+ (Closes: #1034143)
+
+ [ Nis Martensen ]
+ * reportbug/utils.py: update CODENAME2SUITE for bookworm (Closes: #1034260)
+
+ -- Nis Martensen <nis.marten...@web.de> Mon, 17 Apr 2023 13:20:18 +0200
+
reportbug (11.6.0) unstable; urgency=medium
[ Paul Wise ]
diff -Nru reportbug-11.6.0/debian/control reportbug-12.0.0/debian/control
--- reportbug-11.6.0/debian/control 2022-08-17 20:48:30.000000000 +0200
+++ reportbug-12.0.0/debian/control 2023-04-17 13:00:18.000000000 +0200
@@ -4,7 +4,7 @@
Maintainer: Reportbug Maintainers <debian-report...@lists.debian.org>
Uploaders: Sandro Tosi <mo...@debian.org>,
Nis Martensen <nis.marten...@web.de>,
-Standards-Version: 4.6.1
+Standards-Version: 4.6.2
Build-Depends: debhelper-compat (= 12),
dh-python,
python3,
diff -Nru reportbug-11.6.0/debian/make_pep440_compliant
reportbug-12.0.0/debian/make_pep440_compliant
--- reportbug-11.6.0/debian/make_pep440_compliant 1970-01-01
01:00:00.000000000 +0100
+++ reportbug-12.0.0/debian/make_pep440_compliant 2023-04-17
13:00:18.000000000 +0200
@@ -0,0 +1,24 @@
+#!/usr/bin/python3
+
+import re
+import sys
+
+
+def make_pep440_compliant(version: str) -> str:
+ """Convert the version into a PEP440 compliant version."""
+ public_version_re = re.compile(
+ r"^([0-9][0-9.]*(?:(?:a|b|rc|.post|.dev)[0-9]+)*)\+?"
+ )
+ _, public, local = public_version_re.split(version, maxsplit=1)
+ if not local:
+ return version
+ sanitized_local = re.sub("[+~]+", ".", local).strip(".")
+ pep440_version = f"{public}+{sanitized_local}"
+ assert re.match(
+ "^[a-zA-Z0-9.]+$", sanitized_local
+ ), f"'{pep440_version}' not PEP440 compliant"
+ return pep440_version
+
+
+if __name__ == "__main__":
+ print(make_pep440_compliant(sys.argv[1]))
diff -Nru reportbug-11.6.0/debian/rules reportbug-12.0.0/debian/rules
--- reportbug-11.6.0/debian/rules 2022-04-18 18:33:14.000000000 +0200
+++ reportbug-12.0.0/debian/rules 2023-04-17 13:00:18.000000000 +0200
@@ -3,15 +3,16 @@
include /usr/share/dpkg/pkg-info.mk
REPORTBUG_VERSION := $(shell python3 -c "import reportbug;
print(reportbug.VERSION_NUMBER)")
+PEP440_DEB_VERSION := $(shell debian/make_pep440_compliant "$(DEB_VERSION)")
%:
dh $@ --with=python3
override_dh_auto_build:
# Test if versions are synchronized (only if releasing); this will bomb
if not synced
- if [ "$(DEB_DISTRIBUTION)" != "UNRELEASED" -a "$(REPORTBUG_VERSION)" !=
"$(DEB_VERSION)" ] ; \
+ if [ "$(DEB_DISTRIBUTION)" != "UNRELEASED" -a "$(REPORTBUG_VERSION)" !=
"$(PEP440_DEB_VERSION)" ] ; \
then \
- echo 'Please update VERSION_NUMBER variable in
reportbug/__init__.py'; exit 1 ; \
+ echo 'Please update VERSION_NUMBER variable in
reportbug/__init__.py to $(PEP440_DEB_VERSION)'; exit 1 ; \
fi
python3 setup.py build
diff -Nru reportbug-11.6.0/reportbug/debbugs.py
reportbug-12.0.0/reportbug/debbugs.py
--- reportbug-11.6.0/reportbug/debbugs.py 2022-11-27 10:34:41.000000000
+0100
+++ reportbug-12.0.0/reportbug/debbugs.py 2023-04-17 13:18:40.000000000
+0200
@@ -249,7 +249,7 @@
pkgs = utils.get_source_package(package, only_source=True)
if pkgs:
info = check_package_info(pkgs[0][0])
- if info[1]:
+ if info and info[1]:
return info
return None
diff -Nru reportbug-11.6.0/reportbug/__init__.py
reportbug-12.0.0/reportbug/__init__.py
--- reportbug-11.6.0/reportbug/__init__.py 2022-12-04 19:28:36.000000000
+0100
+++ reportbug-12.0.0/reportbug/__init__.py 2023-04-17 13:20:18.000000000
+0200
@@ -25,7 +25,7 @@
__all__ = ['bugreport', 'utils', 'urlutils', 'checkbuildd', 'checkversions',
'debbugs', 'exceptions', 'submit', 'tempfile', 'mailer']
-VERSION_NUMBER = "11.6.0"
+VERSION_NUMBER = "12.0.0"
VERSION = "reportbug " + VERSION_NUMBER
COPYRIGHT = VERSION + '\nCopyright (C) 1999-2008 Chris Lawrence
<lawre...@debian.org>' + \
diff -Nru reportbug-11.6.0/reportbug/utils.py
reportbug-12.0.0/reportbug/utils.py
--- reportbug-11.6.0/reportbug/utils.py 2022-11-27 09:37:15.000000000 +0100
+++ reportbug-12.0.0/reportbug/utils.py 2023-04-17 13:18:40.000000000 +0200
@@ -86,13 +86,13 @@
'/usr/man', '/usr/doc', '/usr/bin']
# A map between codenames and suites
-CODENAME2SUITE = {'wheezy': 'oldoldoldoldstable',
- 'jessie': 'oldoldoldstable',
- 'stretch': 'oldoldstable',
- 'buster': 'oldstable',
- 'bullseye': 'stable',
- 'bookworm': 'testing',
- 'trixie': 'next-testing',
+CODENAME2SUITE = {'jessie': 'oldoldoldoldstable',
+ 'stretch': 'oldoldoldstable',
+ 'buster': 'oldoldstable',
+ 'bullseye': 'oldstable',
+ 'bookworm': 'stable',
+ 'trixie': 'testing',
+ 'forky': 'next-testing',
'sid': 'unstable',
'experimental': 'experimental'}
SUITE2CODENAME = dict([(suite, codename) for codename, suite in
list(CODENAME2SUITE.items())])
@@ -651,8 +651,16 @@
packarg = shlex.quote(package)
if avail:
- output = get_command_output(
- "LC_ALL=C.UTF-8 apt-cache show %s 2>/dev/null" % packarg)
+ # Get the information on the package from apt instead of dpkg.
+ # XXX: Only call `apt-cache show $pkg` if we already know that apt
+ # knows about the package. See #716763 for why. A better
+ # solution would be to collect all information through
+ # python-apt directly.
+ if package in _apt_cache:
+ output = get_command_output(
+ "LC_ALL=C.UTF-8 apt-cache show %s 2>/dev/null" % packarg)
+ else:
+ output = ""
else:
# filter through dpkg-query to automatically append arch
# qualifier in the cases where this is needed
@@ -1954,7 +1962,8 @@
-------
list of strings
"""
- #
https://github.com/torvalds/linux/blob/cedc5b6aab493f6b1b1d381dccc0cc082da7d3d8/include/linux/kernel.h#L582
+ #
https://github.com/torvalds/linux/blob/2852ca7fba9f77b204f0fe953b31fadd0057c936/include/linux/panic.h#L52
+
# this is going to need updating (but maybe not that often)
TAINT_FLAGS = [
'TAINT_PROPRIETARY_MODULE',
@@ -1975,6 +1984,7 @@
'TAINT_LIVEPATCH',
'TAINT_AUX',
'TAINT_RANDSTRUCT',
+ 'TAINT_TEST',
]
flags = []