git: 0e4d3e69d22d - main - graphics/ufraw: make compatible with exiv2 0.28
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 09 Jul 2023 22:09:49 UTC
The branch main has been updated by mandree:
URL: https://cgit.FreeBSD.org/ports/commit/?id=0e4d3e69d22d89c1e0972f90bab859473c3935ca
commit 0e4d3e69d22d89c1e0972f90bab859473c3935ca
Author: Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2023-07-02 22:08:28 +0000
Commit: Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2023-07-09 22:08:12 +0000
graphics/ufraw: make compatible with exiv2 0.28
PR: 272311
---
graphics/ufraw/Makefile | 6 ++-
graphics/ufraw/files/patch-ufraw__exiv2.cc | 74 ++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 2 deletions(-)
diff --git a/graphics/ufraw/Makefile b/graphics/ufraw/Makefile
index 3a9caf1c450a..6ba1718afe17 100644
--- a/graphics/ufraw/Makefile
+++ b/graphics/ufraw/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ufraw
PORTVERSION= 0.22.20210424
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= graphics
MAINTAINER= rodrigo@FreeBSD.org
@@ -11,6 +11,7 @@ LICENSE= GPLv2
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
+ libharfbuzz.so:print/harfbuzz \
libjasper.so:graphics/jasper \
liblcms2.so:graphics/lcms2 \
libpng.so:graphics/png \
@@ -18,7 +19,7 @@ LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
USES= autoreconf compiler:c++11-lang desktop-file-utils gettext \
gmake gnome jpeg pkgconfig
-USE_CXXSTD= gnu++98
+USE_CXXSTD= gnu++14
USE_GITHUB= yes
GH_ACCOUNT= sergiomb2
GH_TAGNAME= f34669b
@@ -30,6 +31,7 @@ CONFIGURE_ARGS= --enable-extras \
--disable-mime
CPPFLAGS+= -I${LOCALBASE}/include
+#CXXFLAGS+= -D_NOEXCEPT=noexcept
LDFLAGS+= -lpthread -L${LOCALBASE}/lib
CONFLICTS_INSTALL= dcraw
diff --git a/graphics/ufraw/files/patch-ufraw__exiv2.cc b/graphics/ufraw/files/patch-ufraw__exiv2.cc
new file mode 100644
index 000000000000..bd04c1dfae93
--- /dev/null
+++ b/graphics/ufraw/files/patch-ufraw__exiv2.cc
@@ -0,0 +1,74 @@
+--- ufraw_exiv2.cc.orig 2021-04-25 05:24:28 UTC
++++ ufraw_exiv2.cc
+@@ -50,10 +50,10 @@ extern "C" int ufraw_exif_read_input(ufraw_data *uf)
+ uf->inputExifBuf = NULL;
+ uf->inputExifBufLen = 0;
+
+- Exiv2::Image::AutoPtr image;
++ Exiv2::Image::UniquePtr image;
+ if (uf->unzippedBuf != NULL) {
+- image = Exiv2::ImageFactory::open(
+- (const Exiv2::byte*)uf->unzippedBuf, uf->unzippedBufLen);
++ image = std::move(Exiv2::ImageFactory::open(
++ (const Exiv2::byte*)uf->unzippedBuf, uf->unzippedBufLen));
+ } else {
+ char *filename = uf_win32_locale_filename_from_utf8(uf->filename);
+ image = Exiv2::ImageFactory::open(filename);
+@@ -66,7 +66,9 @@ extern "C" int ufraw_exif_read_input(ufraw_data *uf)
+ if (exifData.empty()) {
+ std::string error(uf->filename);
+ error += ": No Exif data found in the file";
+-#if EXIV2_TEST_VERSION(0,27,0)
++#if EXIV2_TEST_VERSION(0,28,0)
++ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, error);
++#elif EXIV2_TEST_VERSION(0,27,0)
+ throw Exiv2::Error(Exiv2::kerErrorMessage, error);
+ #else
+ throw Exiv2::Error(1, error);
+@@ -135,7 +137,7 @@ extern "C" int ufraw_exif_read_input(ufraw_data *uf)
+ ufraw_message(UFRAW_SET_LOG, "%s\n", stderror.str().c_str());
+
+ return UFRAW_SUCCESS;
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ std::cerr.rdbuf(savecerr);
+ std::string s(e.what());
+ ufraw_message(UFRAW_SET_WARNING, "%s\n", s.c_str());
+@@ -155,8 +157,8 @@ static Exiv2::ExifData ufraw_prepare_exifdata(ufraw_da
+ /* Reset orientation tag since UFRaw already rotates the image */
+ if ((pos = exifData.findKey(Exiv2::ExifKey("Exif.Image.Orientation")))
+ != exifData.end()) {
+- ufraw_message(UFRAW_SET_LOG, "Resetting %s from '%d' to '1'\n",
+- pos->key().c_str(), pos->value().toLong());
++ ufraw_message(UFRAW_SET_LOG, "Resetting %s from '%ld' to '1'\n",
++ pos->key().c_str(), static_cast<long int>(pos->value().toInt64()));
+ pos->setValue("1"); /* 1 = Normal orientation */
+ }
+ }
+@@ -327,7 +329,7 @@ extern "C" int ufraw_exif_prepare_output(ufraw_data *u
+ ufraw_message(UFRAW_SET_LOG, "%s\n", stderror.str().c_str());
+
+ return UFRAW_SUCCESS;
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ std::cerr.rdbuf(savecerr);
+ std::string s(e.what());
+ ufraw_message(UFRAW_SET_WARNING, "%s\n", s.c_str());
+@@ -347,7 +349,7 @@ extern "C" int ufraw_exif_write(ufraw_data *uf)
+
+ char *filename =
+ uf_win32_locale_filename_from_utf8(uf->conf->outputFilename);
+- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++ Exiv2::Image::UniquePtr image { Exiv2::ImageFactory::open(filename) };
+ uf_win32_locale_filename_free(filename);
+ assert(image.get() != 0);
+
+@@ -367,7 +369,7 @@ extern "C" int ufraw_exif_write(ufraw_data *uf)
+ ufraw_message(UFRAW_SET_LOG, "%s\n", stderror.str().c_str());
+
+ return UFRAW_SUCCESS;
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ std::cerr.rdbuf(savecerr);
+ std::string s(e.what());
+ ufraw_message(UFRAW_SET_WARNING, "%s\n", s.c_str());