> > > > sadly this will break packaging for all python ports with shared
> > > > libraries to the change they made for shared libraries :-(
> > > 
> > > 3.9 will have the same in the next release.
> > > 
> > > There are approx 178 ports to fix, they'll just need plist regen and
> > > bumping (there is already an appropriate variable in python.port.mk).
> > > I'm working on it.

opencv currently has py2+py3 in a single package, using 2.7
MODPY_VERSION and manually adding the 3.x parts. This makes it difficult
to use python.port.mk infrastructure to handle the .so renaming.

Is it OK to drop py2 support from opencv? Upstream say that it's
deprecated, and nothing in ports is using it (only nomacs and digikam
use opencv, and neither use Python).

A few other small tweaks to the Makefile to remove some things which
are set by default anyway (ONLY_FOR_ARCHS is set based on COMPILER
settings), use consistent .if for arch-specific things, move the
bsd.port.arch.mk include to the point where it's needed (it has
side-effects, easier to reason with if it affects a smaller number of
lines), and fix a typo in COMMENT.

Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/opencv/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- Makefile    23 Dec 2020 18:33:05 -0000      1.64
+++ Makefile    30 Dec 2020 13:16:24 -0000
@@ -1,16 +1,16 @@
 # $OpenBSD: Makefile,v 1.64 2020/12/23 18:33:05 rsadowski Exp $
 
-ONLY_FOR_ARCHS =       ${GCC4_ARCHS} ${CLANG_ARCHS}
 ONLY_FOR_ARCHS-java =  aarch64 amd64 i386
 
 CATEGORIES =           graphics devel
-COMMENT-main =         library for computer vision real-time processin
+COMMENT-main =         library for computer vision real-time processing
 COMMENT-java =         Java bindings for OpenCV
 
 V =                    4.5.1
 GH_ACCOUNT =           opencv
 GH_PROJECT =           opencv
 GH_TAGNAME =           ${V}
+REVISION =             0
 
 PKGNAME-main =         opencv-${V}
 PKGNAME-java =         opencv-java-${V}
@@ -19,8 +19,6 @@ HOMEPAGE =            https://www.opencv.org/
 
 MAINTAINER =           Rafael Sadowski <rsadow...@openbsd.org>
 
-DISTFILES =            opencv-{opencv/archive/}${V}${EXTRACT_SUFX}
-
 .for i in opencv_calib3d opencv_core opencv_features2d \
   opencv_flann opencv_highgui opencv_imgproc opencv_ml opencv_objdetect \
   opencv_photo opencv_stitching opencv_video opencv_imgcodecs \
@@ -47,18 +45,14 @@ FLAVOR ?=
 # BSDL
 PERMIT_PACKAGE =       Yes
 
-.include <bsd.port.arch.mk>
-
 MODULES =              devel/cmake \
                        lang/python
+MODPY_VERSION =                ${MODPY_DEFAULT_VERSION_3}
 
-BUILD_DEPENDS =                lang/python/${MODPY_DEFAULT_VERSION_3} \
-                       math/eigen3 \
-                       math/py-numpy \
-                       math/py-numpy,python3
+BUILD_DEPENDS =                math/eigen3 \
+                       math/py-numpy${MODPY_FLAVOR}
 
-RUN_DEPENDS-main =     math/py-numpy \
-                       math/py-numpy,python3
+RUN_DEPENDS-main =     math/py-numpy${MODPY_FLAVOR}
 
 RUN_DEPENDS-java =     ${MODJAVA_RUN_DEPENDS}
 
@@ -77,7 +71,7 @@ LIB_DEPENDS-java =    ${BUILD_PKGPATH},-mai
 
 # XXX PIE cannot be produced due to problems with inline assembly.
 # Since OpenCV is mostly used as a LIBrary, switch to PIC.
-.if ${ARCH:Mi386}
+.if ${MACHINE_ARCH:Mi386}
 CONFIGURE_ENV =                CFLAGS="${CFLAGS} -fPIC" \
                        CXXFLAGS="${CXXFLAGS} -fPIC"
 .endif
@@ -96,8 +90,11 @@ CONFIGURE_ARGS =     -DBUILD_DOCS=OFF \
                        -DBUILD_ITT=OFF \
                        -DBUILD_PERF_TESTS=OFF \
                        -DBUILD_TESTS=OFF \
+                       -DBUILD_opencv_python2=OFF \
                        -DINSTALL_PYTHON_EXAMPLES=OFF \
                        -DINSTALL_TESTS=OFF \
+                       -DOPENCV_SKIP_PYTHON_WARNING=ON \
+                       -DPYTHON_DEFAULT_EXECUTABLE=${MODPY_BIN} \
                        -DWITH_1394=OFF \
                        -DWITH_ADE=OFF \
                        -DWITH_CUDA=OFF \
@@ -107,6 +104,8 @@ CONFIGURE_ARGS =    -DBUILD_DOCS=OFF \
                        -DWITH_V4L=OFF \
                        -DWITH_VTK=OFF
 
+.include <bsd.port.arch.mk>
+
 .if ${BUILD_PACKAGES:M-java}
 MODULES +=             java
 MODJAVA_VER =          1.8+
@@ -120,8 +119,6 @@ CONFIG_ADJ_CMD =    perl -pi
 .for _l _v in ${SHARED_LIBS}
 CONFIG_ADJ_CMD +=      -e 's,lib${_l}.so([^.]),lib${_l}.so.${_v}$$1,g;'
 .endfor
-
-SUBST_VARS +=  MODPY_DEFAULT_VERSION_3
 
 NO_TEST =      Yes
 # Enable to run the regression tests
Index: pkg/PLIST-java
===================================================================
RCS file: /cvs/ports/graphics/opencv/pkg/PLIST-java,v
retrieving revision 1.11
diff -u -p -r1.11 PLIST-java
--- pkg/PLIST-java      23 Dec 2020 18:33:05 -0000      1.11
+++ pkg/PLIST-java      30 Dec 2020 13:16:24 -0000
@@ -1,5 +1,5 @@
 @comment $OpenBSD: PLIST-java,v 1.11 2020/12/23 18:33:05 rsadowski Exp $
 share/java/
 share/java/opencv4/
-share/java/opencv4/opencv-451.jar
 @so share/java/opencv4/libopencv_java451.so
+share/java/opencv4/opencv-451.jar
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/graphics/opencv/pkg/PLIST-main,v
retrieving revision 1.14
diff -u -p -r1.14 PLIST-main
--- pkg/PLIST-main      23 Dec 2020 18:33:05 -0000      1.14
+++ pkg/PLIST-main      30 Dec 2020 13:16:24 -0000
@@ -286,25 +286,18 @@ lib/cmake/opencv4/OpenCVModules.cmake
 @lib lib/libopencv_videoio.so.${LIBopencv_videoio_VERSION}
 lib/python${MODPY_VERSION}/site-packages/cv2/
 lib/python${MODPY_VERSION}/site-packages/cv2/__init__.py
-lib/python${MODPY_VERSION}/site-packages/cv2/__init__.pyc
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}config-${MODPY_VERSION}.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}load_config_py2.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/cv2/${MODPY_PYCACHE}load_config_py3.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/cv2/config-${MODPY_VERSION}.py
-lib/python${MODPY_VERSION}/site-packages/cv2/config-${MODPY_VERSION}.pyc
 lib/python${MODPY_VERSION}/site-packages/cv2/config.py
-lib/python${MODPY_VERSION}/site-packages/cv2/config.pyc
 lib/python${MODPY_VERSION}/site-packages/cv2/load_config_py2.py
-lib/python${MODPY_VERSION}/site-packages/cv2/load_config_py2.pyc
 lib/python${MODPY_VERSION}/site-packages/cv2/load_config_py3.py
-lib/python${MODPY_VERSION}/site-packages/cv2/load_config_py3.pyc
 lib/python${MODPY_VERSION}/site-packages/cv2/python-${MODPY_VERSION}/
 @so lib/python${MODPY_VERSION}/site-packages/cv2/python-${MODPY_VERSION}/cv2.so
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/__init__.py
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/config-${MODPY_DEFAULT_VERSION_3}.py
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/config.py
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/load_config_py2.py
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/load_config_py3.py
-lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/python-${MODPY_DEFAULT_VERSION_3}/
-@so 
lib/python${MODPY_DEFAULT_VERSION_3}/site-packages/cv2/python-${MODPY_DEFAULT_VERSION_3}/cv2.so
 share/licenses/
 share/licenses/opencv4/
 share/licenses/opencv4/SoftFloat-COPYING.txt

Reply via email to