diff --git a/graphics/ufraw/Makefile b/graphics/ufraw/Makefile index 3a9caf1c450a..6ba1718afe17 100644 --- a/graphics/ufraw/Makefile +++ b/graphics/ufraw/Makefile @@ -1,77 +1,79 @@ PORTNAME= ufraw PORTVERSION= 0.22.20210424 -PORTREVISION= 7 +PORTREVISION= 8 CATEGORIES= graphics MAINTAINER= rodrigo@FreeBSD.org COMMENT= Read and manipulate raw images from various digital cameras WWW= http://ufraw.sourceforge.net/ 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 \ libtiff.so:graphics/tiff 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 USE_GNOME+= cairo gdkpixbuf2 glib20 gtk20 GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-extras \ --enable-jasper \ --disable-mime CPPFLAGS+= -I${LOCALBASE}/include +#CXXFLAGS+= -D_NOEXCEPT=noexcept LDFLAGS+= -lpthread -L${LOCALBASE}/lib CONFLICTS_INSTALL= dcraw OPTIONS_DEFINE= CONTRAST DST EXIV2 FITS GIMP GTK2 LENSFUN OPTIONS_DEFAULT= CONTRAST EXIV2 GTK2 LENSFUN OPTIONS_SUB= yes CONTRAST_DESC= Enable contrast setting option DST_DESC= Use local time for timestamps FITS_DESC= FITS output support GIMP_DESC= Install GIMP plugin CONTRAST_CONFIGURE_ENABLE= contrast DST_CONFIGURE_ENABLE= dst-correction EXIV2_LIB_DEPENDS= libexiv2.so:graphics/exiv2 FITS_LIB_DEPENDS= libcfitsio.so:astro/cfitsio FITS_CONFIGURE_WITH= cfitsio GIMP_IMPLIES= GTK2 GIMP_LIB_DEPENDS= libbabl-0.1.so:x11/babl \ libgegl-0.4.so:graphics/gegl \ libgimp-2.0.so:graphics/gimp-app \ libjson-glib-1.0.so:devel/json-glib GIMP_CONFIGURE_WITH= gimp GTK2_LIB_DEPENDS= libgtkimageview.so:x11-toolkits/gtkimageview GTK2_CONFIGURE_WITH= gtk LENSFUN_LIB_DEPENDS= liblensfun.so:graphics/lensfun post-patch: ${GREP} -Ilrs 'default(none)' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e 's/default(none)//g' @${REINPLACE_CMD} -e 's|$$(datadir)/gconf/schemas|${PREFIX}/etc/gconf/schemas|g' \ ${WRKSRC}/Makefile.am post-patch-EXIV2-off: @${REINPLACE_CMD} -e 's|exiv2 >= 0.20|exiv2 < 0|g' \ ${WRKSRC}/configure.ac post-patch-LENSFUN-off: @${REINPLACE_CMD} -e 's|lensfun >= 0.2.5|lensfun < 0|g' \ ${WRKSRC}/configure.ac post-install: ${INSTALL_DATA} ${WRKSRC}/ufraw.desktop ${STAGEDIR}${DESKTOPDIR} .include 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(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());