Skip to content

Commit

Permalink
kde-apps/gwenview: Fix build with exiv2-0.27
Browse files Browse the repository at this point in the history
Apply conditionally for now while patch is in review upstream.

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <[email protected]>
  • Loading branch information
a17r committed Dec 30, 2018
1 parent 8b5a9eb commit 4368fe0
Show file tree
Hide file tree
Showing 2 changed files with 217 additions and 0 deletions.
216 changes: 216 additions & 0 deletions kde-apps/gwenview/files/gwenview-18.12.0-exiv2-0.27.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
From 7e4cd5e91d7434448b7227ee8cf3307435cc7d00 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 30 Dec 2018 12:59:05 +0100
Subject: [PATCH 1/2] Include exiv2.hpp instead of individual headers

Headers are subject to refactoring upstream, using exiv2.hpp per recommendation.
---
lib/cms/cmsprofile.h | 2 +-
lib/document/document.h | 2 +-
lib/exiv2imageloader.cpp | 4 ----
lib/exiv2imageloader.h | 2 +-
lib/imagemetainfomodel.cpp | 4 +---
lib/jpegcontent.cpp | 4 ----
lib/timeutils.cpp | 4 ----
tests/auto/documenttest.cpp | 2 --
tests/auto/imagemetainfomodeltest.cpp | 2 --
9 files changed, 4 insertions(+), 22 deletions(-)

diff --git a/lib/cms/cmsprofile.h b/lib/cms/cmsprofile.h
index a2a38a87..bc378ff9 100644
--- a/lib/cms/cmsprofile.h
+++ b/lib/cms/cmsprofile.h
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
#include <QSharedData>

// Exiv2
-#include <exiv2/image.hpp>
+#include <exiv2/exiv2.hpp>

class QByteArray;
class QString;
diff --git a/lib/document/document.h b/lib/document/document.h
index c0bb454b..8e32c044 100644
--- a/lib/document/document.h
+++ b/lib/document/document.h
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <lib/gwenviewlib_export.h>

#include <string.h>
-#include <exiv2/image.hpp>
+#include <exiv2/exiv2.hpp>

// Qt
#include <QObject>
diff --git a/lib/exiv2imageloader.cpp b/lib/exiv2imageloader.cpp
index f2830f81..f12b7383 100644
--- a/lib/exiv2imageloader.cpp
+++ b/lib/exiv2imageloader.cpp
@@ -28,10 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

// KDE

-// Exiv2
-#include <exiv2/error.hpp>
-#include <exiv2/types.hpp>
-
// Local

namespace Gwenview
diff --git a/lib/exiv2imageloader.h b/lib/exiv2imageloader.h
index 57ef24d2..866e7fac 100644
--- a/lib/exiv2imageloader.h
+++ b/lib/exiv2imageloader.h
@@ -29,7 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

// Exiv2
#include <string.h>
-#include <exiv2/image.hpp>
+#include <exiv2/exiv2.hpp>

// Local

diff --git a/lib/imagemetainfomodel.cpp b/lib/imagemetainfomodel.cpp
index d7b89ab2..58f1c13d 100644
--- a/lib/imagemetainfomodel.cpp
+++ b/lib/imagemetainfomodel.cpp
@@ -33,9 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <KFormat>

// Exiv2
-#include <exiv2/exif.hpp>
-#include <exiv2/image.hpp>
-#include <exiv2/iptc.hpp>
+#include <exiv2/exiv2.hpp>

// Local
#ifdef HAVE_FITS
diff --git a/lib/jpegcontent.cpp b/lib/jpegcontent.cpp
index bb810dd4..a628e8a8 100644
--- a/lib/jpegcontent.cpp
+++ b/lib/jpegcontent.cpp
@@ -41,10 +41,6 @@ extern "C" {
// KDE
#include <KLocalizedString>

-// Exiv2
-#include <exiv2/exif.hpp>
-#include <exiv2/image.hpp>
-
// Local
#include "jpegerrormanager.h"
#include "iodevicejpegsourcemanager.h"
diff --git a/lib/timeutils.cpp b/lib/timeutils.cpp
index 9e8836a9..19befff5 100644
--- a/lib/timeutils.cpp
+++ b/lib/timeutils.cpp
@@ -29,10 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
// KDE
#include <KFileItem>

-// Exiv2
-#include <exiv2/exif.hpp>
-#include <exiv2/image.hpp>
-
// Local
#include <lib/exiv2imageloader.h>
#include <lib/urlutils.h>
diff --git a/tests/auto/documenttest.cpp b/tests/auto/documenttest.cpp
index 9373641f..496346f0 100644
--- a/tests/auto/documenttest.cpp
+++ b/tests/auto/documenttest.cpp
@@ -39,8 +39,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "../lib/transformimageoperation.h"
#include "testutils.h"

-#include <exiv2/exif.hpp>
-
#include "documenttest.h"

QTEST_MAIN(DocumentTest)
diff --git a/tests/auto/imagemetainfomodeltest.cpp b/tests/auto/imagemetainfomodeltest.cpp
index e3ec8d30..c4467a73 100644
--- a/tests/auto/imagemetainfomodeltest.cpp
+++ b/tests/auto/imagemetainfomodeltest.cpp
@@ -28,8 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "../lib/imagemetainfomodel.h"
#include "testutils.h"

-#include <exiv2/exif.hpp>
-
#include "imagemetainfomodeltest.h"

QTEST_MAIN(ImageMetaInfoModelTest)
--
2.20.1


From 7d6c5d95cf4e4d7c857f5d659a58f82bdc46259c Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <[email protected]>
Date: Sun, 30 Dec 2018 11:31:20 +0100
Subject: [PATCH 2/2] Fix build with exiv2-0.27
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Summary:
Include exiv2.hpp instead of individual headers

Headers are subject to refactoring upstream, using exiv2.hpp per recommendation.

Enable exceptions globally - otherwise, lots of the following error:

In file included from /usr/include/exiv2/types.hpp:34,
from /usr/include/exiv2/image.hpp:28,
from gwenview-18.12.0/lib/cms/cmsprofile.h:33,
from gwenview-18.12.0/lib/cms/cmsprofile.cpp:22:
/usr/include/exiv2/slice.hpp: In constructor ‘Exiv2::Internal::SliceBase::SliceBase(size_t, size_t)’:
/usr/include/exiv2/slice.hpp:99:77: error: exception handling disabled, use -fexceptions to enable
throw std::out_of_range("Begin must be smaller than end");
^

Test Plan: Built fine with exiv2-0.27

Reviewers: #gwenview, cgiboudeaux

Tags: #gwenview

Differential Revision: https://phabricator.kde.org/D17869
---
CMakeLists.txt | 2 ++
lib/CMakeLists.txt | 6 ------
2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f44f9afc..b85ba4bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -126,6 +126,8 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})

add_definitions(-DQT_NO_URL_CAST_FROM_STRING)

+kde_enable_exceptions()
+
## dirs to build
add_subdirectory(lib)
add_subdirectory(app)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 169df3c6..f7e9f71f 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -220,12 +220,6 @@ if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
)
endif()

-kde_source_files_enable_exceptions(
- exiv2imageloader.cpp
- imagemetainfomodel.cpp
- timeutils.cpp
- )
-
ki18n_wrap_ui(gwenviewlib_SRCS
crop/cropwidget.ui
documentview/messageview.ui
--
2.20.1

1 change: 1 addition & 0 deletions kde-apps/gwenview/gwenview-18.12.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ RDEPEND="${COMMON_DEPEND}

src_prepare() {
kde5_src_prepare
has_version ">=media-gfx/exiv2-0.27" && eapply "${FILESDIR}/${P}-exiv2-0.27.patch"
if ! use mpris; then
# FIXME: upstream a better solution
sed -e "/set(HAVE_QTDBUS/s/\${Qt5DBus_FOUND}/0/" -i CMakeLists.txt || die
Expand Down

0 comments on commit 4368fe0

Please sign in to comment.