aboutsummaryrefslogtreecommitdiff
path: root/graphics/exiv2
diff options
context:
space:
mode:
authorTobias C. Berner <tcberner@FreeBSD.org>2019-03-29 19:07:31 +0000
committerTobias C. Berner <tcberner@FreeBSD.org>2019-03-29 19:07:31 +0000
commit4caf55a84dcb2a2da1bb20ae825943715b1079be (patch)
treebcf6552c48a7a6994045b22801bfff2a90c8ae29 /graphics/exiv2
parentc6ab91852f2c0b98b44278f71e28d5417a4bec9d (diff)
downloadports-4caf55a84dcb2a2da1bb20ae825943715b1079be.tar.gz
ports-4caf55a84dcb2a2da1bb20ae825943715b1079be.zip
graphics/exiv2: add patch to fix gimp
Modify upstrams fix [1] for FreeBSD. PR: 236677 Reported by: Vladimir Omelchuk <admin@vladiom.com.ua>
Notes
Notes: svn path=/head/; revision=497188
Diffstat (limited to 'graphics/exiv2')
-rw-r--r--graphics/exiv2/Makefile1
-rw-r--r--graphics/exiv2/files/patch-git_04c9b188
2 files changed, 89 insertions, 0 deletions
diff --git a/graphics/exiv2/Makefile b/graphics/exiv2/Makefile
index 5567b525f744..ba731d348dac 100644
--- a/graphics/exiv2/Makefile
+++ b/graphics/exiv2/Makefile
@@ -4,6 +4,7 @@
PORTNAME= exiv2
DISTVERSION= 0.27.0
DISTVERSIONSUFFIX= a-Source
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= graphics
MASTER_SITES= http://www.exiv2.org/builds/
diff --git a/graphics/exiv2/files/patch-git_04c9b1 b/graphics/exiv2/files/patch-git_04c9b1
new file mode 100644
index 000000000000..55f3cce0cb79
--- /dev/null
+++ b/graphics/exiv2/files/patch-git_04c9b1
@@ -0,0 +1,88 @@
+Slightly modified:
+
+From 04c9b181cc2c7741fcb134ccc43f2bafc1f86f19 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= <piponazo@gmail.com>
+Date: Sat, 12 Jan 2019 12:15:27 +0000
+Subject: [PATCH] Fix #644. Export specializations of BasicError
+
+- Only export BasicError::setMsg which is the only implementation present in the .cpp
+- Only export BasicError specialization on __APPLE__
+
+It seems that gcc automatically adds the attribute when the visibility
+settings are set to hidden. See this link for more information:
+https://reviews.llvm.org/D35388
+---
+ cmake/mainSetup.cmake | 6 ++++--
+ include/exiv2/error.hpp | 3 ++-
+ src/error.cpp | 6 ++++--
+ 3 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/cmake/mainSetup.cmake b/cmake/mainSetup.cmake
+index 05c16004d..a4d983d4c 100644
+--- cmake/mainSetup.cmake
++++ cmake/mainSetup.cmake
+@@ -13,8 +13,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+
+-set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+-set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
++if (NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
++ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
++endif()
+
+ set(CMAKE_CXX_STANDARD 98)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+diff --git a/include/exiv2/error.hpp b/include/exiv2/error.hpp
+index 0f9714e5b..42a0959c4 100644
+--- include/exiv2/error.hpp
++++ include/exiv2/error.hpp
+@@ -315,7 +315,7 @@ namespace Exiv2 {
+ std::basic_string<charT> arg3_; //!< Third argument
+ std::string msg_; //!< Complete error message
+ #ifdef EXV_UNICODE_PATH
+- std::wstring wmsg_; //!< Complete error message as a wide string
++ std::wstring wmsg_; //!< Complete error message as a wide string
+ #endif
+ }; // class BasicError
+
+@@ -389,6 +389,7 @@ namespace Exiv2 {
+ return wmsg_.c_str();
+ }
+ #endif
++
+ #ifdef _MSC_VER
+ # pragma warning( default : 4275 )
+ #endif
+diff --git a/src/error.cpp b/src/error.cpp
+index 6d3a24bd8..c8e2d9e0d 100644
+--- src/error.cpp
++++ src/error.cpp
+@@ -224,7 +224,6 @@ namespace Exiv2 {
+ {
+ }
+
+- //! @cond IGNORE
+ template<>
+ void BasicError<char>::setMsg()
+ {
+@@ -257,7 +256,9 @@ namespace Exiv2 {
+ wmsg_ = s2ws(msg);
+ #endif
+ }
+- //! @endcond
++#ifdef __FreeBSD__
++ template class EXIV2API BasicError<char>;
++#endif
+
+ #ifdef EXV_UNICODE_PATH
+ template<>
+@@ -291,6 +292,7 @@ namespace Exiv2 {
+ wmsg_ = wmsg;
+ msg_ = ws2s(wmsg);
+ }
++ template class EXIV2API BasicError<wchar_t>;
+ #endif
+
+ const char* errMsg(int code)