Date: Sun, 21 Feb 2021 16:17:35 +0000 (UTC) From: Christoph Moench-Tegeder <cmt@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r566231 - in head/graphics/shotwell: . files Message-ID: <202102211617.11LGHZfW071987@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: cmt Date: Sun Feb 21 16:17:35 2021 New Revision: 566231 URL: https://svnweb.freebsd.org/changeset/ports/566231 Log: make shotwell's facedetection code compile with opencv 4 Patch adapted from upstream: https://gitlab.gnome.org/GNOME/shotwell/-/commit/f54094594016359bbafd0be44a53ea28c8968593 At the same time, linking against opencv 4 fails when compiling shotwell with gcc. As a stopgap measure, disable option OPENMP (which currently forces use of gcc, but work is underway to switch that to llvm (see PR 252379). I'll revisit OPENMP once 252379 has landed). Added: head/graphics/shotwell/files/patch-facedetect_meson.build (contents, props changed) head/graphics/shotwell/files/patch-facedetect_shotwell-facedetect.cpp (contents, props changed) Modified: head/graphics/shotwell/Makefile Modified: head/graphics/shotwell/Makefile ============================================================================== --- head/graphics/shotwell/Makefile Sun Feb 21 16:06:23 2021 (r566230) +++ head/graphics/shotwell/Makefile Sun Feb 21 16:17:35 2021 (r566231) @@ -3,7 +3,7 @@ PORTNAME= shotwell PORTVERSION= 0.30.11 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics gnome MASTER_SITES= GNOME @@ -32,8 +32,9 @@ LIB_DEPENDS= libgio-2.0.so:devel/glib20 \ libwebkit2gtk-4.0.so:www/webkit2-gtk3 \ libxml2.so:textproc/libxml2 -USES= gettext desktop-file-utils gnome meson ninja pkgconfig \ - python:3.4+,build shebangfix sqlite tar:xz xorg +# USES compiler: also see option OPENMP below +USES= compiler:c++11-lib desktop-file-utils gettext gnome meson \ + ninja pkgconfig python:3.4+,build shebangfix sqlite tar:xz xorg USE_GNOME= cairo dconf gtk30 USE_GSTREAMER1= yes USE_LDCONFIG= yes @@ -49,18 +50,21 @@ INSTALLS_ICONS= yes PORTSCOUT= limitw:1,even MAKE_JOBS_UNSAFE= yes -OPTIONS_DEFINE= FACED OPENMP +# facedetection fails to link against opencv4 when building with GCC +# disable openmp until llvm becomes the default openmp provider, then +# try again +OPTIONS_DEFINE= FACED # OPENMP OPTIONS_SUB= yes FACED_DESC= Face Detection -OPENMP_DESC= libraw uses OpenMP (implies GCC) +# OPENMP_DESC= libraw uses OpenMP (implies GCC) FACED_CONFIGURE_ON= -Dface-detection=true FACED_CONFIGURE_OFF= -Dface-detection=false FACED_LIB_DEPENDS= libopencv_core.so:graphics/opencv \ libopencv_photo.so:graphics/opencv -OPENMP_USES= compiler:openmp -OPENMP_USES_OFF= compiler:c++11-lib +# OPENMP_USES= compiler:openmp +# OPENMP_USES_OFF= compiler:c++11-lib PLIST_SUB= DISTVERSION=${DISTVERSION} Added: head/graphics/shotwell/files/patch-facedetect_meson.build ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/shotwell/files/patch-facedetect_meson.build Sun Feb 21 16:17:35 2021 (r566231) @@ -0,0 +1,10 @@ +--- facedetect/meson.build.orig 2020-11-05 20:48:33 UTC ++++ facedetect/meson.build +@@ -1,6 +1,6 @@ + subproject = ('facedetect') + add_languages('cpp') +-facedetect_dep = dependency('opencv', version : ['>= 2.3.0'], required : true) ++facedetect_dep = dependency('opencv4', version : ['>= 4.0.0'], required : true) + executable('shotwell-facedetect', + 'shotwell-facedetect.cpp', + dependencies : facedetect_dep, Added: head/graphics/shotwell/files/patch-facedetect_shotwell-facedetect.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/shotwell/files/patch-facedetect_shotwell-facedetect.cpp Sun Feb 21 16:17:35 2021 (r566231) @@ -0,0 +1,20 @@ +--- facedetect/shotwell-facedetect.cpp.orig 2021-02-21 15:22:50 UTC ++++ facedetect/shotwell-facedetect.cpp +@@ -34,7 +34,7 @@ void help() { + void detectFaces(Mat &img, CascadeClassifier &cascade, double scale) { + + Mat gray; +- cvtColor(img, gray, CV_BGR2GRAY); ++ cvtColor(img, gray, COLOR_BGR2GRAY); + + Mat smallImg(cvRound(img.rows / scale), cvRound(img.cols / scale), CV_8UC1); + Size smallImgSize = smallImg.size(); +@@ -43,7 +43,7 @@ void detectFaces(Mat &img, CascadeClassifier &cascade, + equalizeHist(smallImg, smallImg); + + vector<Rect> faces; +- cascade.detectMultiScale(smallImg, faces, 1.1, 2, CV_HAAR_SCALE_IMAGE, Size(30, 30)); ++ cascade.detectMultiScale(smallImg, faces, 1.1, 2, CASCADE_SCALE_IMAGE, Size(30, 30)); + + int i = 0; + for (vector<Rect>::const_iterator r = faces.begin(); r != faces.end(); r++, i++) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102211617.11LGHZfW071987>