diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2017-02-18 23:44:27 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2017-02-19 00:33:10 +0100 |
commit | 3542c10ba95fb072f50711f53a0b60bbde63b540 (patch) | |
tree | d8417f82a7e6f61af0a607c44921a45604f1ac19 /media-gfx | |
parent | media-sound/ifp-gnome: python-single-r1, EAPI=6 (diff) | |
download | gentoo-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.ebuild | 174 | ||||
-rw-r--r-- | media-gfx/digikam/files/digikam-5.3.0-redeyes-crash.patch | 43 |
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; |