Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: c...@packages.debian.org Control: affects -1 + src:ceph
Please unblock package ceph [ Reason ] ceph-volume was broken, affected by #1104579. [ Impact ] Impossible to setup ceph for operators using ceph-volume. [ Tests ] I manually tested that the fix does what it claims. [ Risks ] No much risks, except a working ceph-volume. [ 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 [ Other info ] The attached debdiff also includes a fix to debian/source/options to allow seemless builds using gbp buildpackage. This wasn't updated when upgrading to 18.2.x since Daniel (my co-maintainer) uses sbuild directly, and not gbp buildpackage like I do. This has no consequence on the resulting binaries, but it helps me (and potential contributors), so please allow it too. unblock ceph/18.2.7-1
diff --git a/debian/changelog b/debian/changelog index c4854757f2..2ac580bfa7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ceph (18.2.7-2) unstable; urgency=medium + + * Add 0010-ceph-volume-fix-importlib.metadata-compat.patch + (Closes: #1104579). + * Fixed debian/source/options extend-diff-ignore. + + -- Thomas Goirand <z...@debian.org> Wed, 28 May 2025 11:19:02 +0200 + ceph (18.2.7-1) sid; urgency=high * Calling calc-max-parallel.sh silently in makefile to reduce visual diff --git a/debian/patches/py313-compat/0010-ceph-volume-fix-importlib.metadata-compat.patch b/debian/patches/py313-compat/0010-ceph-volume-fix-importlib.metadata-compat.patch new file mode 100644 index 0000000000..2d2bff622b --- /dev/null +++ b/debian/patches/py313-compat/0010-ceph-volume-fix-importlib.metadata-compat.patch @@ -0,0 +1,34 @@ +Description: ceph-volume: fix importlib.metadata compat + The importlib.metadata library removed older shims in releases >5.0.0 + where EntryPoints objects use .select() instead of dict-like access. + . + Fixes: https://tracker.ceph.com/issues/68032 + . +Author: Peter Sabaini <peter.saba...@canonical.com> +Date: Wed, 11 Sep 2024 16:56:50 +0200 +Signed-off-by: Peter Sabaini <peter.saba...@canonical.com> +Origin: upstream, https://patch-diff.githubusercontent.com/raw/ceph/ceph/pull/59739.patch +Last-Update: 2025-05-28 + +diff --git a/src/ceph-volume/ceph_volume/main.py b/src/ceph-volume/ceph_volume/main.py +index f8eca65ec497c..4f27f429e89e2 100644 +--- a/src/ceph-volume/ceph_volume/main.py ++++ b/src/ceph-volume/ceph_volume/main.py +@@ -11,8 +11,16 @@ + from importlib.metadata import entry_points + + def get_entry_points(group: str): # type: ignore +- return entry_points().get(group, []) # type: ignore ++ eps = entry_points() ++ if hasattr(eps, 'select'): ++ # New importlib.metadata uses .select() ++ return eps.select(group=group) ++ else: ++ # Fallback to older EntryPoints that returns dicts ++ return eps.get(group, []) # type: ignore ++ + except ImportError: ++ # Fallback to `pkg_resources` for older versions + from pkg_resources import iter_entry_points as entry_points # type: ignore + + def get_entry_points(group: str): # type: ignore diff --git a/debian/patches/series b/debian/patches/series index 2fba4ae4e3..8d2ed4e4b6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -37,3 +37,4 @@ py313-compat/0005-mgr-do-not-require-NOTIFY_TYPES-in-python-modules.patch py313-compat/0007-mgr-stop-using-deprecated-API-to-initialize-Python.patch py313-compat/0008-mgr-set-argv-for-python-in-PyModuleRegistry.patch py313-compat/0009-mgr-add-site-package-paths-in-PyModuleRegistry.patch +py313-compat/0010-ceph-volume-fix-importlib.metadata-compat.patch diff --git a/debian/source/options b/debian/source/options index d029bb02e6..854e19a179 100644 --- a/debian/source/options +++ b/debian/source/options @@ -1,11 +1,13 @@ -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock\.sln" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vcproj" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vsprops" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vcxproj" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock_config.props" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/codegear/gtest.*\.cbproj" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all\.cc" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link\.cc" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/codegear/gtest\.groupproj" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/msvc/gtest.*\.vcproj" -extend-diff-ignore = ".*src/rapidjson/thirdparty/gtest/googletest/msvc/gtest.*\.sln" +extend-diff-ignore = ".*src/jaegertracing/opentelemetry-cpp/third_party/ms-gsl/tests/no_exception_ensure_tests.cpp" +extend-diff-ignore = ".*src/jaegertracing/opentelemetry-cpp/third_party/ms-gsl/tests/span_ext_tests.cpp" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock\.sln" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vcproj" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vsprops" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock.*vcxproj" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googlemock/msvc/20\d\d/gmock_config.props" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/codegear/gtest.*\.cbproj" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all\.cc" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link\.cc" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/codegear/gtest\.groupproj" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/msvc/gtest.*\.vcproj" +extend-diff-ignore = ".*src/s3select/rapidjson/thirdparty/gtest/googletest/msvc/gtest.*\.sln"