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"

Reply via email to