diff --git a/exiv-2.0.27-buildfix.patch b/exiv-2.0.27-buildfix.patch
new file mode 100644
index 0000000..b5ca058
--- /dev/null
+++ b/exiv-2.0.27-buildfix.patch
@@ -0,0 +1,96 @@
+commit f9213c8ad796cf4571b2606435c32753040ec645
+Author: Rasmus Thomsen <Rasmus.thomsen@protonmail.com>
+Date:   Sun Jan 6 17:40:31 2019 +0000
+
+    Fix #654, 655: fix build against exiv2-0.27.x
+    
+    https://github.com/BestImageViewer/geeqie/pull/655
+
+diff --git a/src/exiv2.cc b/src/exiv2.cc
+index 1dbe118..5dc31ac 100644
+--- a/src/exiv2.cc
++++ b/src/exiv2.cc
+@@ -22,16 +22,24 @@
+ 
+ #ifdef HAVE_EXIV2
+ 
+-#include <exiv2/image.hpp>
+-#include <exiv2/exif.hpp>
++// Don't include the <exiv2/version.hpp> file directly
++// Early Exiv2 versions didn't have version.hpp and the macros.
++#include <exiv2/exiv2.hpp>
+ #include <iostream>
+ 
+ // EXIV2_TEST_VERSION is defined in Exiv2 0.15 and newer.
++#ifdef EXIV2_VERSION
+ #ifndef EXIV2_TEST_VERSION
+-# define EXIV2_TEST_VERSION(major,minor,patch) \
++#define EXIV2_TEST_VERSION(major,minor,patch) \
+ 	( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
+ #endif
++#else
++#define EXIV2_TEST_VERSION(major,minor,patch) (false)
++#endif
+ 
++#if EXIV2_TEST_VERSION(0,27,0)
++#define HAVE_EXIV2_ERROR_CODE
++#endif
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -39,27 +47,8 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ 
+-#if !EXIV2_TEST_VERSION(0,17,90)
+-#include <exiv2/tiffparser.hpp>
+-#include <exiv2/tiffcomposite.hpp>
+-#include <exiv2/tiffvisitor.hpp>
+-#include <exiv2/tiffimage.hpp>
+-#include <exiv2/cr2image.hpp>
+-#include <exiv2/crwimage.hpp>
+-#if EXIV2_TEST_VERSION(0,16,0)
+-#include <exiv2/orfimage.hpp>
+-#endif
+-#if EXIV2_TEST_VERSION(0,13,0)
+-#include <exiv2/rafimage.hpp>
+-#endif
+-#include <exiv2/futils.hpp>
+-#else
+-#include <exiv2/preview.hpp>
+-#endif
+-
+-#if EXIV2_TEST_VERSION(0,17,0)
+-#include <exiv2/convert.hpp>
+-#include <exiv2/xmpsidecar.hpp>
++#if EXIV2_TEST_VERSION(0,27,0)
++#define EXV_PACKAGE "exiv2"
+ #endif
+ 
+ extern "C" {
+@@ -357,8 +346,11 @@ public:
+ 			copyXmpToExif(xmpData_, exifData_);
+ #endif
+ 			Exiv2::Image *image = imageData_->image();
+-
++#ifdef HAVE_EXIV2_ERROR_CODE
++                        if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed);
++#else
+ 			if (!image) Exiv2::Error(21);
++#endif
+ 			image->setExifData(exifData_);
+ 			image->setIptcData(iptcData_);
+ #if EXIV2_TEST_VERSION(0,16,0)
+@@ -377,8 +369,12 @@ public:
+ 
+ 			sidecar->setXmpData(xmpData_);
+ 			sidecar->writeMetadata();
++#else
++#ifdef HAVE_EXIV2_ERROR_CODE
++                        throw Exiv2::Error(Exiv2::ErrorCode::kerNotAnImage, "xmp");
+ #else
+ 			throw Exiv2::Error(3, "xmp");
++#endif
+ #endif
+ 			}
+ 	}
diff --git a/geeqie.changes b/geeqie.changes
index 89a6575..baf34f6 100644
--- a/geeqie.changes
+++ b/geeqie.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Mon Apr  8 16:16:22 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr>
+
+- Add exiv-2.0.27-buildfix.patch.
+
 -------------------------------------------------------------------
 Wed Nov  8 12:49:32 UTC 2017 - gutaper@gmail.com
 
diff --git a/geeqie.spec b/geeqie.spec
index 5a8b8f0..ecc5ed8 100644
--- a/geeqie.spec
+++ b/geeqie.spec
@@ -1,7 +1,7 @@
 #
 # spec file for package geeqie
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -20,12 +20,14 @@ Name:           geeqie
 Version:        1.3
 Release:        0
 Summary:        Lightweight Gtk+ based image viewer
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          Productivity/Graphics/Viewers
-Url:            http://www.geeqie.org/
+URL:            http://www.geeqie.org/
 Source0:        http://www.geeqie.org/%{name}-%{version}.tar.xz
 Source1:        http://www.geeqie.org/%{name}-%{version}.tar.xz.asc
 Source2:        geeqie.keyring
+# PATCH-FIX-UPSTREAM
+Patch0:         exiv-2.0.27-buildfix.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  intltool
@@ -43,12 +45,12 @@ BuildRequires:  pkgconfig(clutter-gtk-1.0) >= 1.0
 BuildRequires:  pkgconfig(exiv2) >= 0.11
 BuildRequires:  pkgconfig(gtk+-3.0)
 BuildRequires:  pkgconfig(lcms2)
-%if 0%{?suse_version} >= 1330
-BuildRequires:  pkgconfig(lua5.1)
-%endif
 Requires(post): update-desktop-files
 Requires(postun): update-desktop-files
 Recommends:     %{name}-lang
+%if 0%{?suse_version} >= 1330
+BuildRequires:  pkgconfig(lua5.1)
+%endif
 
 %description
 Geeqie is a lightweight image viewer for Linux, BSDs and compatibles.
@@ -57,6 +59,7 @@ Geeqie is a lightweight image viewer for Linux, BSDs and compatibles.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 # Needed to bootstrap
@@ -75,6 +78,9 @@ make %{?_smp_mflags}
 %suse_update_desktop_file %{name}
 %fdupes %{buildroot}
 
+# Already in the license directory
+rm %{buildroot}%{_docdir}/%{name}/COPYING
+
 %post
 %desktop_database_post
 
@@ -83,7 +89,8 @@ make %{?_smp_mflags}
 
 %files
 %defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog NEWS README TODO README.lirc
+%license COPYING
+%doc AUTHORS ChangeLog NEWS README TODO README.lirc
 %{_bindir}/geeqie
 %{_datadir}/applications/geeqie.desktop
 %{_datadir}/geeqie/