On Wed Dec 30, 2020 at 01:21:54PM +0000, Stuart Henderson wrote: > > > > > 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).
I can confirm nothing in ports uses the opencv-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. Thanks Stuart for taking care of it. The python part was on my 2021 list. Package fine and digikam is still happy. OK rsadowski@ > > 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 >