summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2017-02-18 23:44:27 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2017-02-19 00:33:10 +0100
commit3542c10ba95fb072f50711f53a0b60bbde63b540 (patch)
treed8417f82a7e6f61af0a607c44921a45604f1ac19 /media-gfx
parentmedia-sound/ifp-gnome: python-single-r1, EAPI=6 (diff)
downloadgentoo-3542c10ba95fb072f50711f53a0b60bbde63b540.tar.gz
gentoo-3542c10ba95fb072f50711f53a0b60bbde63b540.tar.bz2
gentoo-3542c10ba95fb072f50711f53a0b60bbde63b540.zip
media-gfx/digikam: Fix crash on fixing red eyes
Gentoo-bug: 609216 Thanks-to: Oliver Schwabedissen <Oliver@Schwabedissen.name> Package-Manager: portage-2.3.3
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/digikam/digikam-5.3.0-r2.ebuild174
-rw-r--r--media-gfx/digikam/files/digikam-5.3.0-redeyes-crash.patch43
2 files changed, 217 insertions, 0 deletions
diff --git a/media-gfx/digikam/digikam-5.3.0-r2.ebuild b/media-gfx/digikam/digikam-5.3.0-r2.ebuild
new file mode 100644
index 000000000000..38187bee3b20
--- /dev/null
+++ b/media-gfx/digikam/digikam-5.3.0-r2.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+if [[ ${KDE_BUILD_TYPE} != live ]]; then
+ KDE_HANDBOOK="true"
+ KDE_TEST="true"
+fi
+CMAKE_MAKEFILE_GENERATOR="emake"
+inherit kde5 toolchain-funcs
+
+DESCRIPTION="Digital photo management application"
+HOMEPAGE="https://www.digikam.org/"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE="addressbook calendar gphoto2 jpeg2k +kipi +lensfun marble semantic-desktop mysql opengl openmp +panorama scanner video X"
+
+if [[ ${KDE_BUILD_TYPE} != live ]]; then
+ MY_PV=${PV/_/-}
+ MY_P=${PN}-${MY_PV}
+ SRC_BRANCH=stable
+ [[ ${PV} =~ beta[0-9]$ ]] && SRC_BRANCH=unstable
+ SRC_URI="mirror://kde/${SRC_BRANCH}/digikam/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}/core"
+fi
+
+COMMON_DEPEND="
+ $(add_frameworks_dep kconfig)
+ $(add_frameworks_dep kconfigwidgets)
+ $(add_frameworks_dep kcoreaddons)
+ $(add_frameworks_dep kiconthemes)
+ $(add_frameworks_dep ki18n)
+ $(add_frameworks_dep kio)
+ $(add_frameworks_dep knotifications)
+ $(add_frameworks_dep knotifyconfig)
+ $(add_frameworks_dep kservice)
+ $(add_frameworks_dep kwidgetsaddons)
+ $(add_frameworks_dep kwindowsystem)
+ $(add_frameworks_dep kxmlgui)
+ $(add_frameworks_dep solid)
+ $(add_qt_dep qtdbus)
+ $(add_qt_dep qtgui '-gles2')
+ $(add_qt_dep qtprintsupport)
+ $(add_qt_dep qtsql 'mysql?')
+ $(add_qt_dep qtwebkit)
+ $(add_qt_dep qtwidgets)
+ $(add_qt_dep qtxml)
+ dev-libs/expat
+ media-gfx/exiv2:=
+ media-libs/lcms:2
+ media-libs/liblqr
+ >=media-libs/libpgf-6.12.27
+ media-libs/libpng:0=
+ media-libs/opencv:=[-qt4(-)]
+ || ( <media-libs/opencv-3.0.0 >=media-libs/opencv-3.1.0 )
+ media-libs/tiff:0
+ virtual/jpeg:0
+ addressbook? (
+ $(add_kdeapps_dep akonadi-contacts)
+ $(add_kdeapps_dep kcontacts)
+ )
+ calendar? ( $(add_kdeapps_dep kcalcore) )
+ gphoto2? ( media-libs/libgphoto2:= )
+ jpeg2k? ( media-libs/jasper:= )
+ kipi? ( $(add_kdeapps_dep libkipi '' '16.03.80') )
+ lensfun? ( media-libs/lensfun )
+ marble? (
+ $(add_frameworks_dep kbookmarks)
+ $(add_kdeapps_dep marble)
+ $(add_qt_dep qtconcurrent)
+ $(add_qt_dep qtnetwork)
+ )
+ mysql? ( virtual/mysql )
+ opengl? (
+ $(add_qt_dep qtopengl)
+ virtual/opengl
+ )
+ panorama? ( $(add_frameworks_dep threadweaver) )
+ scanner? ( $(add_kdeapps_dep libksane) )
+ semantic-desktop? ( $(add_frameworks_dep kfilemetadata) )
+ video? ( $(add_qt_dep qtmultimedia 'widgets') )
+ X? (
+ $(add_qt_dep qtx11extras)
+ x11-libs/libX11
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ $(add_qt_dep qtconcurrent)
+ dev-cpp/eigen:3
+ dev-libs/boost[threads]
+ sys-devel/gettext
+ panorama? (
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ media-plugins/kipi-plugins:5
+ panorama? ( media-gfx/hugin )
+ !media-gfx/digikam:4
+"
+
+RESTRICT=test
+# bug 366505
+
+PATCHES=(
+ "${FILESDIR}/${P}-db-lock.patch"
+ "${FILESDIR}/${P}-clang.patch"
+ "${FILESDIR}/${P}-kf-5.31.patch"
+ "${FILESDIR}/${P}-redeyes-crash.patch"
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ kde5_pkg_pretend
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ kde5_pkg_setup
+}
+
+# FIXME: Unbundle libraw (libs/rawengine/libraw)
+src_prepare() {
+ if [[ ${KDE_BUILD_TYPE} != live ]]; then
+ # prepare the translations
+ mv "${WORKDIR}/${MY_P}/po" po || die
+ find po -name "*.po" -and -not -name "digikam.po" -delete || die
+ echo "set_property(GLOBAL PROPERTY ALLOW_DUPLICATE_CUSTOM_TARGETS 1)" >> CMakeLists.txt || die
+ echo "find_package(Gettext REQUIRED)" >> CMakeLists.txt || die
+ echo "add_subdirectory( po )" >> CMakeLists.txt || die
+
+ if use handbook; then
+ # subdirs need to be preserved b/c relative paths...
+ # doc-translated is, in fact, broken, and ignored
+ mv "${WORKDIR}/${MY_P}/doc/${PN}" doc-default || die
+ echo "find_package(KF5DocTools REQUIRED)" >> CMakeLists.txt || die
+ echo "add_subdirectory( doc-default )" >> CMakeLists.txt || die
+ fi
+ fi
+
+ if ! use marble; then
+ punt_bogus_dep Qt5 Network
+ fi
+
+ kde5_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_APPSTYLES=ON
+ -DENABLE_AKONADICONTACTSUPPORT=$(usex addressbook)
+ -DENABLE_MYSQLSUPPORT=$(usex mysql)
+ -DENABLE_MEDIAPLAYER=$(usex video)
+ -DENABLE_OPENCV3=$(has_version ">=media-libs/opencv-3" && echo yes || echo no)
+ $(cmake-utils_use_find_package calendar KF5CalendarCore)
+ $(cmake-utils_use_find_package gphoto2 Gphoto2)
+ $(cmake-utils_use_find_package jpeg2k Jasper)
+ $(cmake-utils_use_find_package kipi KF5Kipi)
+ $(cmake-utils_use_find_package lensfun LensFun)
+ $(cmake-utils_use_find_package marble Marble)
+ $(cmake-utils_use_find_package opengl OpenGL)
+ $(cmake-utils_use_find_package openmp OpenMP)
+ $(cmake-utils_use_find_package panorama KF5ThreadWeaver)
+ $(cmake-utils_use_find_package scanner KF5Sane)
+ $(cmake-utils_use_find_package semantic-desktop KF5FileMetaData)
+ $(cmake-utils_use_find_package X X11)
+ )
+
+ kde5_src_configure
+}
diff --git a/media-gfx/digikam/files/digikam-5.3.0-redeyes-crash.patch b/media-gfx/digikam/files/digikam-5.3.0-redeyes-crash.patch
new file mode 100644
index 000000000000..055f9be3acd1
--- /dev/null
+++ b/media-gfx/digikam/files/digikam-5.3.0-redeyes-crash.patch
@@ -0,0 +1,43 @@
+commit 1dad795deb0fbfcef5ad4932f7ade781d35ce17e
+Author: Maik Qualmann <metzpinguin@gmail.com>
+Date: Wed Nov 23 19:37:46 2016 +0100
+
+ fix not found shapepredictor.dat file
+ BUGS: 372831
+ FIXED-IN: 5.4.0
+
+diff --git a/libs/dimg/filters/redeye/redeyecorrectionfilter.cpp b/libs/dimg/filters/redeye/redeyecorrectionfilter.cpp
+index 1cbaefc..a834208 100644
+--- a/libs/dimg/filters/redeye/redeyecorrectionfilter.cpp
++++ b/libs/dimg/filters/redeye/redeyecorrectionfilter.cpp
+@@ -99,14 +99,14 @@ RedEyeCorrectionFilter::~RedEyeCorrectionFilter()
+
+ void RedEyeCorrectionFilter::filterImage()
+ {
+- if (d->sp == 0)
++ if (!d->sp)
+ {
+ // Loading the shape predictor model
+
+- QList<QString> path = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
+- QString::fromLatin1("digikam/facesengine"),
+- QStandardPaths::LocateDirectory);
+- QFile model(*path.begin() + QLatin1String("/ShapePredictor.dat"));
++ QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
++ QLatin1String("digikam/facesengine/shapepredictor.dat"));
++
++ QFile model(path);
+
+ if (model.open(QIODevice::ReadOnly))
+ {
+@@ -116,6 +116,10 @@ void RedEyeCorrectionFilter::filterImage()
+ dataStream >> *temp;
+ d->sp = temp;
+ }
++ else
++ {
++ return;
++ }
+ }
+
+ cv::Mat intermediateImage;