Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package opencv

[ Reason ]
OpenCV specified dependencies between its library packages manually in
addition to ${shlibs:Depends}. According to the git history was
introduced ~10 years ago (no explanation in the commit) and was not
really kept up to date over the years. This resulted in circular
dependencies between the packages as reported in #979809.

[ Impact ]
Quoting from the bug:

| Circular dependencies involving shared libraries are known to cause problems
| during upgrade between stable releases, so we should try to avoid them.

Though I have not seen related problems on real systems.

[ Tests ]
I have compared the package dependencies before and after the patch. For
packages where the manually specified library match, ${shlibs:Depends}
defines them as (>= 4.5.1+dfsg), instead of the manually specified (=
4.5.1+dfsg-4), which I think is more correct.
For packages where additional library dependencies where specified, I
used readelf -d to make sure that those are actually not needed.

[ Risks ]
I think the risk is pretty low, ${shlibs:Depends} works well to the best
of my knowledge. On the other hand I can see that the consequences may
not be completely obvious. Given that the bugs are not release critical,
I'm fine with postponing this to bookworm as well. This is why I ask for
a pre-approval first. I could also upload to experimental and provide
some script to compare the packages if that helps.

[ 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

unblock opencv/4.5.1+dfsg-5
diff --git a/debian/changelog b/debian/changelog
index a680a4890..645901c47 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+opencv (4.5.1+dfsg-5) unstable; urgency=medium
+
+  * Team upload.
+  * Drop depends between library packages (Closes: #979809)
+  * Drop ${java:Depends}/${java:Recommends} (undefined)
+  * Update libgdcm-dev arch list (Closes: #987621)
+
+ -- Jochen Sprickerhof <jspri...@debian.org>  Wed, 16 Jun 2021 14:09:47 +0200
+
 opencv (4.5.1+dfsg-4) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/control b/debian/control
index bc9ffbedf..7dbe1c235 100644
--- a/debian/control
+++ b/debian/control
@@ -213,8 +213,7 @@ Package: libopencv-ml4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-core4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Machine Learning library
@@ -256,8 +255,7 @@ Package: libopencv-imgproc4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-core4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Image Processing library
@@ -278,7 +276,7 @@ Package: libopencv-imgcodecs-dev
 Architecture: any
 Multi-Arch: same
 Section: libdevel
-Depends: libgdcm-dev [!hppa !m68k !powerpcspe !riscv64 !sh4],
+Depends: libgdcm-dev [!alpha !hppa !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k 
!powerpcspe !sh4 !x32],
          libopencv-imgcodecs4.5 (= ${binary:Version}),
          libopencv-imgproc-dev (= ${binary:Version}),
          ${misc:Depends}
@@ -300,8 +298,7 @@ Package: libopencv-imgcodecs4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-imgproc4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Image Codecs library
@@ -343,8 +340,7 @@ Package: libopencv-video4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-imgproc4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Video analysis library
@@ -388,8 +384,7 @@ Package: libopencv-videoio4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-imgcodecs4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Video I/O library
@@ -432,9 +427,7 @@ Package: libopencv-objdetect4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-highgui4.5 (= ${binary:Version}),
-         libopencv-ml4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Object Detection library
@@ -488,8 +481,7 @@ Package: libopencv-highgui4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-videoio4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision High-level GUI and Media I/O library
@@ -531,8 +523,7 @@ Package: libopencv-calib3d4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-features2d4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Breaks: libimage-proc-dev (<< 1.15.2-4)
@@ -576,8 +567,7 @@ Package: libopencv-flann4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-core4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Clustering and Search in Multi-Dimensional spaces 
library
@@ -619,8 +609,7 @@ Package: libopencv-dnn4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-core4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Breaks: libdepth-image-proc-dev (<< 1.15.2-4),
@@ -670,10 +659,7 @@ Package: libopencv-features2d4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-flann4.5 (= ${binary:Version}),
-         libopencv-highgui4.5 (= ${binary:Version}),
-         libopencv-ml4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Feature Detection and Descriptor Extraction 
library
@@ -716,8 +702,7 @@ Package: libopencv-photo4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-imgproc4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision computational photography library
@@ -762,10 +747,7 @@ Package: libopencv-videostab4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-calib3d4.5 (= ${binary:Version}),
-         libopencv-photo4.5 (= ${binary:Version}),
-         libopencv-video4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision video stabilization library
@@ -808,9 +790,7 @@ Package: libopencv-stitching4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-calib3d4.5 (= ${binary:Version}),
-         libopencv-objdetect4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision image stitching library
@@ -853,8 +833,7 @@ Package: libopencv-shape4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-video4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision shape descriptors and matchers library
@@ -897,9 +876,7 @@ Package: libopencv-superres4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-video4.5 (= ${binary:Version}),
-         libopencv-videoio4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision Super Resolution library
@@ -942,8 +919,7 @@ Package: libopencv-viz4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-core4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision 3D data visualization library
@@ -1047,25 +1023,7 @@ Package: libopencv-contrib4.5
 Architecture: any
 Multi-Arch: same
 Section: libs
-Depends: libopencv-calib3d4.5 (= ${binary:Version}),
-         libopencv-core4.5 (= ${binary:Version}),
-         libopencv-dnn4.5 (= ${binary:Version}),
-         libopencv-features2d4.5 (= ${binary:Version}),
-         libopencv-flann4.5 (= ${binary:Version}),
-         libopencv-highgui4.5 (= ${binary:Version}),
-         libopencv-imgcodecs4.5 (= ${binary:Version}),
-         libopencv-imgproc4.5 (= ${binary:Version}),
-         libopencv-ml4.5 (= ${binary:Version}),
-         libopencv-objdetect4.5 (= ${binary:Version}),
-         libopencv-photo4.5 (= ${binary:Version}),
-         libopencv-shape4.5 (= ${binary:Version}),
-         libopencv-stitching4.5 (= ${binary:Version}),
-         libopencv-superres4.5 (= ${binary:Version}),
-         libopencv-video4.5 (= ${binary:Version}),
-         libopencv-videoio4.5 (= ${binary:Version}),
-         libopencv-videostab4.5 (= ${binary:Version}),
-         libopencv-viz4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Description: computer vision contrlib library
@@ -1118,10 +1076,7 @@ Package: libopencv4.5-java
 Architecture: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x alpha 
ia64 m68k powerpc ppc64 riscv64 sh4 sparc64 x32
 Multi-Arch: no
 Section: java
-Depends: libopencv4.5-jni (>= ${binary:Version}),
-         ${java:Depends},
-         ${misc:Depends}
-Recommends: ${java:Recommends}
+Depends: libopencv4.5-jni (>= ${binary:Version}), ${misc:Depends}
 Breaks: libopencv2.4-java,
         libopencv3.2-java,
         libopencv3.3-java,
@@ -1158,13 +1113,7 @@ Package: libopencv4.5-jni
 Architecture: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x alpha 
ia64 m68k powerpc ppc64 riscv64 sh4 sparc64 x32
 Multi-Arch: no
 Section: java
-Depends: libopencv-calib3d4.5 (= ${binary:Version}),
-         libopencv-highgui4.5 (= ${binary:Version}),
-         libopencv-ml4.5 (= ${binary:Version}),
-         libopencv-objdetect4.5 (= ${binary:Version}),
-         libopencv-photo4.5 (= ${binary:Version}),
-         libopencv-video4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${shlibs:Depends}
 Description: Java jni library for the computer vision library
  This package contains Java jni library for the OpenCV (Open Computer Vision)
@@ -1183,24 +1132,7 @@ Description: Java jni library for the computer vision 
library
 Package: python3-opencv
 Architecture: any
 Section: python
-Depends: libopencv-calib3d4.5 (= ${binary:Version}),
-         libopencv-dnn4.5 (= ${binary:Version}),
-         libopencv-features2d4.5 (= ${binary:Version}),
-         libopencv-flann4.5 (= ${binary:Version}),
-         libopencv-highgui4.5 (= ${binary:Version}),
-         libopencv-imgcodecs4.5 (= ${binary:Version}),
-         libopencv-imgproc4.5 (= ${binary:Version}),
-         libopencv-ml4.5 (= ${binary:Version}),
-         libopencv-objdetect4.5 (= ${binary:Version}),
-         libopencv-photo4.5 (= ${binary:Version}),
-         libopencv-shape4.5 (= ${binary:Version}),
-         libopencv-stitching4.5 (= ${binary:Version}),
-         libopencv-superres4.5 (= ${binary:Version}),
-         libopencv-video4.5 (= ${binary:Version}),
-         libopencv-videoio4.5 (= ${binary:Version}),
-         libopencv-videostab4.5 (= ${binary:Version}),
-         libopencv-viz4.5 (= ${binary:Version}),
-         ${misc:Depends},
+Depends: ${misc:Depends},
          ${python3:Depends},
          ${shlibs:Depends},
          libcharls2

Reply via email to