diff options
author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-08-15 17:01:32 +0200 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2016-08-18 06:47:44 +1000 |
commit | aa844686c8792e80a1b1be97571da30626a1f803 (patch) | |
tree | e5ea32fa5ad628d3d457798774b3ad171a19f0e2 /media-gfx/digikam | |
parent | kde-apps/konsole: USE=X requires kdelibs4support[X] (diff) | |
download | gentoo-aa844686c8792e80a1b1be97571da30626a1f803.tar.gz gentoo-aa844686c8792e80a1b1be97571da30626a1f803.tar.bz2 gentoo-aa844686c8792e80a1b1be97571da30626a1f803.zip |
media-gfx/digikam: Add USE=jpeg2k,opengl,openmp,panorama; fix configure
Choose some default USE flags
Patches to fix runtime crashes
Sort dependencies
Package-Manager: portage-2.2.28
Diffstat (limited to 'media-gfx/digikam')
-rw-r--r-- | media-gfx/digikam/digikam-5.1.0-r1.ebuild | 172 | ||||
-rw-r--r-- | media-gfx/digikam/files/digikam-5.1.0-albums-crashfix.patch | 35 | ||||
-rw-r--r-- | media-gfx/digikam/files/digikam-5.1.0-i386-gcc61.patch | 41 | ||||
-rw-r--r-- | media-gfx/digikam/files/digikam-5.1.0-memalloc-crash.patch | 95 | ||||
-rw-r--r-- | media-gfx/digikam/metadata.xml | 1 |
5 files changed, 344 insertions, 0 deletions
diff --git a/media-gfx/digikam/digikam-5.1.0-r1.ebuild b/media-gfx/digikam/digikam-5.1.0-r1.ebuild new file mode 100644 index 000000000000..55270340c354 --- /dev/null +++ b/media-gfx/digikam/digikam-5.1.0-r1.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2016 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" +CMAKE_MIN_VERSION="3.0" +inherit kde5 toolchain-funcs + +DESCRIPTION="Digital photo management application" +HOMEPAGE="https://www.digikam.org/" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~x86" +IUSE="addressbook 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 kcompletion) + $(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 kjobwidgets) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep knotifyconfig) + $(add_frameworks_dep kservice) + $(add_frameworks_dep ktextwidgets) + $(add_frameworks_dep kwidgetsaddons) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep solid) + $(add_kdeapps_dep libkexiv2) + $(add_qt_dep qtconcurrent) + $(add_qt_dep qtdbus) + $(add_qt_dep qtgui) + $(add_qt_dep qtprintsupport) + $(add_qt_dep qtscript) + $(add_qt_dep qtsql 'mysql?') + $(add_qt_dep qtwebkit) + $(add_qt_dep qtwidgets) + $(add_qt_dep qtxml) + dev-libs/boost[threads] + 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) + ) + 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_frameworks_dep kitemmodels) + $(add_kdeapps_dep marble) + ) + 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} + dev-cpp/eigen:3 + 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}-i386-gcc61.patch" + "${FILESDIR}/${P}-albums-crashfix.patch" + "${FILESDIR}/${P}-memalloc-crash.patch" +) + +# FIXME: Unbundle libraw (libs/rawengine/libraw) +pkg_pretend() { + if use openmp ; then + tc-has-openmp || die "Please switch to an openmp compatible compiler" + fi + kde5_pkg_pretend +} + +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 "add_subdirectory( doc-default )" >> CMakeLists.txt || die + fi + fi + + kde5_src_prepare +} + +src_configure() { + # LQR = only allows to choose between bundled/external + local mycmakeargs=( + -DENABLE_AKONADICONTACTSUPPORT=$(usex addressbook) + -DENABLE_KFILEMETADATASUPPORT=$(usex semantic-desktop) + -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 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 X X11) + ) + + kde5_src_configure +} diff --git a/media-gfx/digikam/files/digikam-5.1.0-albums-crashfix.patch b/media-gfx/digikam/files/digikam-5.1.0-albums-crashfix.patch new file mode 100644 index 000000000000..e22e8dfb0e82 --- /dev/null +++ b/media-gfx/digikam/files/digikam-5.1.0-albums-crashfix.patch @@ -0,0 +1,35 @@ +From: Gilles Caulier <caulier.gilles@gmail.com> +Date: Thu, 11 Aug 2016 11:41:08 +0000 +Subject: Fix CR #1368976 +X-Git-Url: http://quickgit.kde.org/?p=digikam.git&a=commitdiff&h=7c628bac74afe24dbc4ca66b1bd5d513e46f6377 +--- +Fix CR #1368976 +BUGS: 366630 +FIXED-IN: 5.2.0 +--- + + +--- a/libs/album/albumtreeview.cpp ++++ b/libs/album/albumtreeview.cpp +@@ -1089,6 +1089,11 @@ + + Album* const album = albumFilterModel()->albumForIndex(indexAt(event->pos())); + ++ if (!album) ++ { ++ return; ++ } ++ + if (album->isTrashAlbum()) + { + // For the moment, disabling context menu for trash. +@@ -1102,7 +1107,7 @@ + } + + // switch to the selected album if need +- if (d->selectOnContextMenu && album) ++ if (d->selectOnContextMenu) + { + setCurrentAlbums(QList<Album*>() << album); + } + diff --git a/media-gfx/digikam/files/digikam-5.1.0-i386-gcc61.patch b/media-gfx/digikam/files/digikam-5.1.0-i386-gcc61.patch new file mode 100644 index 000000000000..710c147ea06a --- /dev/null +++ b/media-gfx/digikam/files/digikam-5.1.0-i386-gcc61.patch @@ -0,0 +1,41 @@ +From: Gilles Caulier <caulier.gilles@gmail.com> +Date: Tue, 09 Aug 2016 18:41:17 +0000 +Subject: apply patch #100514 to fix broken compilation under 32 bits platform with GCC 6.1 +X-Git-Url: http://quickgit.kde.org/?p=digikam.git&a=commitdiff&h=067a88d8c84a5149469961d54b1d5c93df6a3167 +--- +apply patch #100514 to fix broken compilation under 32 bits platform with GCC 6.1 +BUGS: 366542 +FIXED-IN: 5.2.0 +--- + + +--- a/libs/rawengine/libraw/libraw/libraw_types.h ++++ b/libs/rawengine/libraw/libraw/libraw_types.h +@@ -612,10 +612,10 @@ + #elif defined(__INTEL__) + #define LibRawBigEndian 0 + +-#elif defined(_M_IX86) ++#elif defined(_M_IX86) || defined(__i386__) + #define LibRawBigEndian 0 + +-#elif defined(_M_X64) || defined(__amd64__) ++#elif defined(_M_X64) || defined(__amd64__) || defined(__x86_64__) + #define LibRawBigEndian 0 + + #elif defined(__LITTLE_ENDIAN__) +@@ -625,6 +625,13 @@ + #define LibRawBigEndian 1 + #elif defined(_ARM_) + #define LibRawBigEndian 0 ++ ++#elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++#define LibRawBigEndian 0 ++ ++#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++#define LibRawBigEndian 1 ++ + #else + #ifndef qXCodeRez + #error Unable to figure out byte order. + diff --git a/media-gfx/digikam/files/digikam-5.1.0-memalloc-crash.patch b/media-gfx/digikam/files/digikam-5.1.0-memalloc-crash.patch new file mode 100644 index 000000000000..1a68f27909bd --- /dev/null +++ b/media-gfx/digikam/files/digikam-5.1.0-memalloc-crash.patch @@ -0,0 +1,95 @@ +From: Maik Qualmann <metzpinguin@gmail.com> +Date: Thu, 11 Aug 2016 19:43:46 +0000 +Subject: fix check of maximum addressable memory on 64bits +X-Git-Url: http://quickgit.kde.org/?p=digikam.git&a=commitdiff&h=90f31456779f4aeb9ac06a385f398827fd35c985 +--- +fix check of maximum addressable memory on 64bits +CCBUGS: 366621 +--- + + +--- a/libs/dimg/loaders/dimgloader.cpp ++++ b/libs/dimg/loaders/dimgloader.cpp +@@ -163,7 +163,7 @@ + + qint64 DImgLoader::checkAllocation(qint64 fullSize) + { +- if (fullSize > std::numeric_limits<int>::max()) ++ if (fullSize > std::numeric_limits<size_t>::max()) + { + qCWarning(DIGIKAM_DIMG_LOG) << "Cannot allocate buffer of size" << fullSize; + return 0; + +From: Maik Qualmann <metzpinguin@gmail.com> +Date: Fri, 12 Aug 2016 19:29:50 +0000 +Subject: fix crash by big memory allocation for DImg on 64bit +X-Git-Url: http://quickgit.kde.org/?p=digikam.git&a=commitdiff&h=65fa04ca097d4ff695690886a9f2be459b4279a9 +--- +fix crash by big memory allocation for DImg on 64bit +CCBUGS: 366621 +--- + + +--- a/libs/dimg/dimg.cpp ++++ b/libs/dimg/dimg.cpp +@@ -211,7 +211,7 @@ + + if (old->data) + { +- int size = allocateData(); ++ size_t size = allocateData(); + memcpy(m_priv->data, old->data, size); + } + } +@@ -234,7 +234,7 @@ + } + else if (copyData) + { +- int size = allocateData(); ++ size_t size = allocateData(); + + if (data) + { +@@ -303,7 +303,7 @@ + setImageData(src->null, src->width, src->height, src->sixteenBit, src->alpha); + } + +-int DImg::allocateData() ++size_t DImg::allocateData() + { + size_t size = m_priv->width * m_priv->height * (m_priv->sixteenBit ? 8 : 4); + m_priv->data = DImgLoader::new_failureTolerant(size); +@@ -2231,7 +2231,7 @@ + + void DImg::resize(int w, int h) + { +- if (w <= 0 || h <= 0) ++ if (isNull() || w <= 0 || h <= 0) + { + return; + } + +--- a/libs/dimg/dimg.h ++++ b/libs/dimg/dimg.h +@@ -655,7 +655,7 @@ + void copyImageData(const Private* const src); + void setImageData(bool null, uint width, uint height, bool sixteenBit, bool alpha); + void setImageDimension(uint width, uint height); +- int allocateData(); ++ size_t allocateData(); + + static void bitBlt(const uchar* const src, uchar* const dest, + int sx, int sy, int w, int h, int dx, int dy, + +--- a/libs/dimg/loaders/dimgloader.cpp ++++ b/libs/dimg/loaders/dimgloader.cpp +@@ -163,7 +163,7 @@ + + qint64 DImgLoader::checkAllocation(qint64 fullSize) + { +- if (fullSize > std::numeric_limits<size_t>::max()) ++ if ((quint64)fullSize > std::numeric_limits<size_t>::max()) + { + qCWarning(DIGIKAM_DIMG_LOG) << "Cannot allocate buffer of size" << fullSize; + return 0; + diff --git a/media-gfx/digikam/metadata.xml b/media-gfx/digikam/metadata.xml index 76eae513bf9e..287778c260cf 100644 --- a/media-gfx/digikam/metadata.xml +++ b/media-gfx/digikam/metadata.xml @@ -13,6 +13,7 @@ <flag name="kipi">Enable support for <pkg>media-plugins/kipi-plugins</pkg></flag> <flag name="lensfun">Enable support for <pkg>media-libs/lensfun</pkg></flag> <flag name="marble">Enable support for geolocation using <pkg>kde-apps/marble</pkg></flag> + <flag name="panorama">Build the panorama plugin which requires <pkg>media-gfx/hugin</pkg></flag> <flag name="semantic-desktop">Enable <pkg>kde-frameworks/kfilemetadata</pkg> support</flag> <flag name="themedesigner">Build the digikam theme designer</flag> <flag name="thumbnails">Enable thumbnails database support</flag> |