diff --git a/graphics/geeqie/Makefile b/graphics/geeqie/Makefile index fb7214b8bdd9..c61143279dc3 100644 --- a/graphics/geeqie/Makefile +++ b/graphics/geeqie/Makefile @@ -1,88 +1,88 @@ PORTNAME= geeqie DISTVERSIONPREFIX= v -DISTVERSION= 2.0.1 -PORTREVISION= 13 +DISTVERSION= 2.1 CATEGORIES= graphics MAINTAINER= amdmi3@FreeBSD.org COMMENT= Lightweight image viewer forked from GQview WWW= https://www.geeqie.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= libpng.so:graphics/png RUN_DEPENDS= bash:shells/bash BUILD_DEPENDS= xxd:editors/vim USES= desktop-file-utils gettext-tools gnome jpeg \ lua:53 meson pkgconfig shebangfix USE_GNOME= cairo gdkpixbuf2 gtk30 glib20 USE_GITHUB= yes GH_ACCOUNT= BestImageViewer +GH_TAGNAME= ad80078 # a bunch of commits after 2.1 with mostly fixes, including exiv2 0.28 crash fix SHEBANG_FILES= plugins/*/geeqie-* -CFLAGS= -Wno-deprecated-declarations +CFLAGS+= -Wno-deprecated-declarations +MESON_ARGS= -Ddoxygen=disabled +MESON_ARGS+= -Dpandoc=disabled +MESON_ARGS+= -Devince=disabled +MESON_ARGS+= -Dgit=disabled PORTDOCS= * OPTIONS_DEFINE= EXIV2 LCMS MAP FFMPEGTHUMBNAILER ARCHIVE SPELL DOCS NLS OPTIONS_DEFAULT=EXIV2 LCMS MAP FFMPEGTHUMBNAILER ARCHIVE SPELL \ - TIFF PDF HEIF WEBP DJVU OPENJPEG RAW JXL + TIFF PDF HEIF DJVU OPENJPEG RAW JXL OPTIONS_GROUP= FORMATS -OPTIONS_GROUP_FORMATS= TIFF PDF HEIF WEBP DJVU OPENJPEG RAW JXL +OPTIONS_GROUP_FORMATS= TIFF PDF HEIF DJVU OPENJPEG RAW JXL OPTIONS_SUB= yes FORMATS_DESC= Image formats support EXIV2_DESC= Metadata editing EXIV2_LIB_DEPENDS= libexiv2.so:graphics/exiv2 EXIV2_MESON_ENABLED= exiv2 LCMS_DESC= Color adjusting LCMS_LIB_DEPENDS= liblcms2.so:graphics/lcms2 LCMS_MESON_ENABLED= cms MAP_DESC= GPS map support via libchamplain MAP_LIB_DEPENDS= libchamplain-0.12.so:graphics/libchamplain \ libclutter-gtk-1.0.so:graphics/clutter-gtk3 \ libclutter-1.0.so:graphics/clutter MAP_MESON_ENABLED= gps-map TIFF_LIB_DEPENDS= libtiff.so:graphics/tiff TIFF_MESON_ENABLED= tiff PDF_LIB_DEPENDS= libpoppler-glib.so:graphics/poppler-glib PDF_MESON_ENABLED= pdf FFMPEGTHUMBNAILER_DESC= Video file thumbnails generating support FFMPEGTHUMBNAILER_MESON_ENABLED= videothumbnailer FFMPEGTHUMBNAILER_LIB_DEPENDS= libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer HEIF_MESON_ENABLED= heif HEIF_LIB_DEPENDS= libheif.so:graphics/libheif -WEBP_MESON_ENABLED= webp -WEBP_LIB_DEPENDS= libwebp.so:graphics/webp - DJVU_MESON_ENABLED= djvu DJVU_LIB_DEPENDS= libdjvulibre.so:graphics/djvulibre OPENJPEG_MESON_ENABLED= j2k OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg RAW_MESON_ENABLED= libraw RAW_LIB_DEPENDS= libraw.so:graphics/libraw ARCHIVE_MESON_ENABLED= archive ARCHIVE_USES= libarchive JXL_MESON_ENABLED= jpegxl JXL_LIB_DEPENDS= libjxl.so:graphics/libjxl SPELL_DESC= Spelling check through gspell SPELL_MESON_ENABLED= spell SPELL_LIB_DEPENDS= libgspell-1.so:textproc/gspell DOCS_BUILD_DEPENDS= yelp-build:textproc/yelp-tools .include diff --git a/graphics/geeqie/distinfo b/graphics/geeqie/distinfo index f4b00f32473d..5798b0932ffc 100644 --- a/graphics/geeqie/distinfo +++ b/graphics/geeqie/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1662056359 -SHA256 (BestImageViewer-geeqie-v2.0.1_GH0.tar.gz) = 6d87004a21b91afb7ea9eac3624fc37f5ccf1818fd40f567f8c7d1b5cbc2a6c7 -SIZE (BestImageViewer-geeqie-v2.0.1_GH0.tar.gz) = 2822097 +TIMESTAMP = 1696441871 +SHA256 (BestImageViewer-geeqie-v2.1-ad80078_GH0.tar.gz) = c393ce20fa8551b7c4f6f826e5283a8e37e6e0bac3b3252169730ccc2c389dd6 +SIZE (BestImageViewer-geeqie-v2.1-ad80078_GH0.tar.gz) = 3132934 diff --git a/graphics/geeqie/files/patch-config.h.in b/graphics/geeqie/files/patch-config.h.in deleted file mode 100644 index 2abb0ac19a56..000000000000 --- a/graphics/geeqie/files/patch-config.h.in +++ /dev/null @@ -1,11 +0,0 @@ ---- config.h.in.orig 2022-08-08 14:22:00 UTC -+++ config.h.in -@@ -161,7 +161,7 @@ - #define HAVE_STRING_H 1 - - /* Define to 1 if you have the `strverscmp' function. */ --#define HAVE_STRVERSCMP 1 -+#mesondefine HAVE_STRVERSCMP - - /* Define to 1 if you have the header file. */ - #define HAVE_SYS_STAT_H 1 diff --git a/graphics/geeqie/files/patch-doc_meson.build b/graphics/geeqie/files/patch-doc_meson.build deleted file mode 100644 index 2b97d6c03897..000000000000 --- a/graphics/geeqie/files/patch-doc_meson.build +++ /dev/null @@ -1,29 +0,0 @@ ---- doc/meson.build.orig 2022-08-08 14:22:00 UTC -+++ doc/meson.build -@@ -16,25 +16,12 @@ subdir('html') - guideindex_xml = files('docbook/GuideIndex.xml') - destdir = join_paths(meson.current_build_dir(), 'html/') - iconsdir = join_paths(meson.current_source_dir(), 'icons/') --guideindex_html = join_paths(destdir, 'GuideIndex.html') - guideindex_ln = join_paths(destdir, 'index.html') - - # Not-found notification already handled by ../meson.build - if gnome_doc_tool.found() - run_command(gnome_doc_tool, 'html', '-o', destdir, '-p', iconsdir, guideindex_xml, check : false) -- run_command(find_program('ln'), '-s', '-f', guideindex_html, guideindex_ln, check : false) -+ run_command(find_program('ln'), '-s', '-f', 'GuideIndex.html', guideindex_ln, check : false) - endif - - install_subdir(destdir, install_dir : helpdir, exclude_directories : 'lua-api/latex') -- --doxygen = find_program('doxygen', required : false) --if doxygen.found() -- srcdir = join_paths(meson.source_root()) -- destdir = join_paths(meson.build_root(), 'doc', 'html', 'lua-api') -- -- run_command(find_program('create-doxygen-lua-api.sh'), srcdir, destdir, check : false) -- -- summary({'lua-api' : ['lua-api help file created:', true]}, section : 'Documentation', bool_yn : true) --else -- summary({'lua-api' : ['doxygen not found - lua-api help file created:', false]}, section : 'Documentation', bool_yn : true) --endif diff --git a/graphics/geeqie/files/patch-meson.build b/graphics/geeqie/files/patch-meson.build index 13d31ce1f527..aedbb630dbf2 100644 --- a/graphics/geeqie/files/patch-meson.build +++ b/graphics/geeqie/files/patch-meson.build @@ -1,59 +1,20 @@ ---- meson.build.orig 2022-08-08 14:22:00 UTC +--- meson.build.orig 2023-06-24 16:32:21 UTC +++ meson.build -@@ -357,7 +357,7 @@ lua_dep = [] +@@ -416,7 +416,7 @@ lua_dep = [] req_version = '>=5.3' option = get_option('lua') if not option.disabled() -- lua_dep = dependency('lua5.3', version : req_version, required : get_option('lua')) -+ lua_dep = dependency('lua-5.3', version : req_version, required : get_option('lua')) - if lua_dep.found() - conf_data.set('HAVE_LUA', 1) - summary({'lua' : ['lua supported:', true]}, section : 'Configuration', bool_yn : true) -@@ -401,7 +401,7 @@ endif - tiff_dep = [] - option = get_option('tiff') - if not option.disabled() -- tiff_dep = cc.find_library('libtiff', required: get_option('tiff')) -+ tiff_dep = dependency('libtiff-4', required: get_option('tiff')) - if tiff_dep.found() - if cc.has_function('TIFFClientOpen', dependencies : tiff_dep) - conf_data.set('HAVE_TIFF', 1) -@@ -446,6 +446,11 @@ else - summary({'nl_langinfo' : ['nl_langinfo not found - first weekday depends on locale:', false, 'first weekday defaults to Monday']}, section : 'Documentation', bool_yn : true) - endif - -+result = cc.has_function('strverscmp', prefix : '#include ') -+if result -+ conf_data.set('HAVE_STRVERSCMP', 1) -+endif -+ - conf_data.set_quoted('GETTEXT_PACKAGE', meson.project_name()) - conf_data.set_quoted('GQ_APPDIR', gq_appdir) - conf_data.set_quoted('GQ_BINDIR', gq_bindir) -@@ -486,7 +491,7 @@ else - endif - - pandoc = find_program('pandoc', required : false) --if pandoc.found() -+if false - run_command(find_program('gen_readme.sh'), meson.source_root(), meson.build_root(), check : false) - - install_data('README.md', 'COPYING', 'TODO', 'AUTHORS', -@@ -494,16 +499,9 @@ if pandoc.found() - install_dir : helpdir) - summary({'README' : ['README.html created:', true]}, section : 'Documentation', bool_yn : true) +- foreach name : ['lua', 'lua5.3', 'lua-5.3', 'lua53'] ++ foreach name : ['lua-5.3'] + lua_dep = dependency(name, version: req_version, required: get_option('lua')) + if lua_dep.found() + break +@@ -452,7 +452,7 @@ if not option.disabled() else -- install_data('README.md', 'COPYING', 'TODO', 'AUTHORS', -+ install_data('README.md', 'TODO', 'AUTHORS', - install_dir : helpdir) - summary({'README' : ['pandoc not found - README.html created:', false]}, section : 'Documentation', bool_yn : true) --endif -- --evince = find_program('evince', required : false) --if evince.found() -- summary({'print preview' : ['print preview supported:', true]}, section : 'Documentation', bool_yn : true) --else -- summary({'print preview' : ['evince not found - print preview supported:', false]}, section : 'Documentation', bool_yn : true) + summary({'pandoc' : ['disabled - README.html created:', false]}, section : 'Documentation', bool_yn : true) endif +-install_data('README.md', 'COPYING', 'TODO', install_dir : helpdir) ++install_data('README.md', 'TODO', install_dir : helpdir) - install_data('geeqie.png', install_dir : icondir) + poppler_glib_dep = [] + req_version = '>=0.62' diff --git a/graphics/geeqie/files/patch-src_exiv2.cc b/graphics/geeqie/files/patch-src_exiv2.cc deleted file mode 100644 index cf6ee24db1d5..000000000000 --- a/graphics/geeqie/files/patch-src_exiv2.cc +++ /dev/null @@ -1,95 +0,0 @@ ---- src/exiv2.cc.orig 2022-08-12 09:36:37 UTC -+++ src/exiv2.cc -@@ -52,6 +52,11 @@ - #define EXV_PACKAGE "exiv2" - #endif - -+#if EXIV2_TEST_VERSION(0,28,0) -+#define AnyError Error -+#define AutoPtr UniquePtr -+#endif -+ - extern "C" { - #include - -@@ -176,7 +181,7 @@ struct _ExifDataOriginal : public _ExifData (public) - { - cp_data_ = NULL; - cp_length_ = 0; -- image_ = image; -+ image_ = std::move(image); - valid_ = TRUE; - } - -@@ -364,7 +369,7 @@ struct _ExifDataProcessed : public _ExifData (public) - Exiv2::Image *image = imageData_->image(); - - #ifdef HAVE_EXIV2_ERROR_CODE -- if (!image) throw Exiv2::Error(Exiv2::kerInputDataReadFailed); -+ if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed); - #else - if (!image) throw Exiv2::Error(21); - #endif -@@ -388,7 +393,7 @@ struct _ExifDataProcessed : public _ExifData (public) - sidecar->writeMetadata(); - #else - #ifdef HAVE_EXIV2_ERROR_CODE -- throw Exiv2::Error(Exiv2::kerNotAnImage, "xmp"); -+ throw Exiv2::Error(Exiv2::ErrorCode::kerNotAnImage, "xmp"); - #else - throw Exiv2::Error(3, "xmp"); - #endif -@@ -840,7 +845,7 @@ gint exif_item_get_integer(ExifItem *item, gint *value - { - try { - if (!item || exif_item_get_elements(item) == 0) return 0; -- *value = ((Exiv2::Metadatum *)item)->toLong(); -+ *value = ((Exiv2::Metadatum *)item)->toInt64(); - return 1; - } - catch (Exiv2::AnyError& e) { -@@ -1224,11 +1229,12 @@ guchar *exif_get_preview(ExifData *exif, guint *data_l - - Exiv2::PreviewImage image = pm.getPreviewImage(*pos); - -+ // https://github.com/BestImageViewer/geeqie/issues/1090 - Exiv2::DataBuf buf = image.copy(); -- std::pair p = buf.release(); -- -- *data_len = p.second; -- return p.first; -+ *data_len = buf.size(); -+ auto b = buf.data(); -+ buf.reset(); -+ return b; - } - return NULL; - } -@@ -1489,22 +1495,22 @@ unsigned long RawFile::preview_offset(void) - if (type == Exiv2::ImageType::cr2) - { - val = find(0x111, Group::ifd0); -- if (val) return val->toLong(); -+ if (val) return val->toInt64(); - - return 0; - } - - val = find(0x201, Group::sub0_0); -- if (val) return val->toLong(); -+ if (val) return val->toInt64(); - - val = find(0x201, Group::ifd0); -- if (val) return val->toLong(); -+ if (val) return val->toInt64(); - - val = find(0x201, Group::ignr); // for PEF files, originally it was probably ifd2 -- if (val) return val->toLong(); -+ if (val) return val->toInt64(); - - val = find(0x111, Group::sub0_1); // dng -- if (val) return val->toLong(); -+ if (val) return val->toInt64(); - - return 0; - } diff --git a/graphics/geeqie/files/patch-src_image-load-cr3.cc b/graphics/geeqie/files/patch-src_image-load-cr3.cc new file mode 100644 index 000000000000..2600afe37ec0 --- /dev/null +++ b/graphics/geeqie/files/patch-src_image-load-cr3.cc @@ -0,0 +1,11 @@ +--- src/image-load-cr3.cc.orig 2023-06-17 12:14:12 UTC ++++ src/image-load-cr3.cc +@@ -350,7 +350,7 @@ static gboolean image_loader_cr3_load (gpointer loader + jerr.error = error; + + +- if (setjmp(jerr.setjmp_buffer)) ++ if (sigsetjmp(jerr.setjmp_buffer, 0)) + { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. diff --git a/graphics/geeqie/files/patch-src_image-load-jpeg.cc b/graphics/geeqie/files/patch-src_image-load-jpeg.cc new file mode 100644 index 000000000000..d7c1f74fe13d --- /dev/null +++ b/graphics/geeqie/files/patch-src_image-load-jpeg.cc @@ -0,0 +1,11 @@ +--- src/image-load-jpeg.cc.orig 2023-06-17 12:14:12 UTC ++++ src/image-load-jpeg.cc +@@ -311,7 +311,7 @@ static gboolean image_loader_jpeg_load (gpointer loade + jerr.error = error; + + +- if (setjmp(jerr.setjmp_buffer)) ++ if (sigsetjmp(jerr.setjmp_buffer, 0)) + { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. diff --git a/graphics/geeqie/files/patch-src_lua.cc b/graphics/geeqie/files/patch-src_lua.cc new file mode 100644 index 000000000000..e3c15c055894 --- /dev/null +++ b/graphics/geeqie/files/patch-src_lua.cc @@ -0,0 +1,13 @@ +--- src/lua.cc.orig 2023-06-17 12:14:12 UTC ++++ src/lua.cc +@@ -24,9 +24,7 @@ + + #define _XOPEN_SOURCE + +-#include +-#include +-#include ++#include + + #include + #include diff --git a/graphics/geeqie/pkg-plist b/graphics/geeqie/pkg-plist index af60481ef6d2..3b8098d5b686 100644 --- a/graphics/geeqie/pkg-plist +++ b/graphics/geeqie/pkg-plist @@ -1,62 +1,63 @@ bin/geeqie lib/geeqie/geeqie-camera-import lib/geeqie/geeqie-camera-import-hook-script lib/geeqie/geeqie-export-jpeg lib/geeqie/geeqie-image-crop lib/geeqie/geeqie-random-image lib/geeqie/geeqie-rotate lib/geeqie/geeqie-symlink lib/geeqie/geeqie-tethered-photography lib/geeqie/geeqie-tethered-photography-hook-script lib/geeqie/geocode-parameters.awk lib/geeqie/lensID share/applications/geeqie.desktop %%DATADIR%%/applications/camera-import.desktop %%DATADIR%%/applications/export-jpeg.desktop %%DATADIR%%/applications/image-crop.desktop %%DATADIR%%/applications/random-image.desktop %%DATADIR%%/applications/rotate.desktop %%DATADIR%%/applications/symlink.desktop %%DATADIR%%/applications/tethered-photography.desktop %%DATADIR%%/template.desktop +share/icons/hicolor/scalable/apps/geeqie.svg %%NLS%%share/locale/ar/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/be/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/bg/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/ca/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/cs/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/da/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/de/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/el/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/en_GB/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/eo/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/es/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/et/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/eu/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/fi/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/fr/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/hu/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/id/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/it/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/ja/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/ko/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/nb/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/nl/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/pl/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/ro/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/ru/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/sk/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/sl/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/sr/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/sr@latin/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/sv/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/th/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/tlh/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/tr/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/uk/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/vi/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/geeqie.mo %%NLS%%share/locale/zh_TW/LC_MESSAGES/geeqie.mo share/man/man1/geeqie.1.gz share/metainfo/org.geeqie.Geeqie.appdata.xml share/pixmaps/geeqie.png