[packages/luminance-hdr] - updates for boost up to 1.87, OpenEXR 3.4, exiv2 0.28

qboosh qboosh at pld-linux.org
Sun Jul 5 22:16:05 CEST 2026


commit 7a7bb29899ff404de1fd360a2241235c5b5843a6
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Jul 5 22:15:59 2026 +0200

    - updates for boost up to 1.87, OpenEXR 3.4, exiv2 0.28

 luminance-hdr-OpenEXR.patch |  25 +++++++++
 luminance-hdr-boost.patch   |  34 ++++++++++++
 luminance-hdr-exiv2.patch   | 122 ++++++++++++++++++++++++++++++++++++++++++++
 luminance-hdr.spec          |  19 +++++--
 4 files changed, 195 insertions(+), 5 deletions(-)
---
diff --git a/luminance-hdr.spec b/luminance-hdr.spec
index 4140bac..0f8b832 100644
--- a/luminance-hdr.spec
+++ b/luminance-hdr.spec
@@ -22,9 +22,13 @@ Source0:	https://downloads.sourceforge.net/qtpfsgui/%{name}-%{version}.tar.bz2
 Patch0:		buildtype.patch
 Patch1:		sse_header.patch
 Patch2:		std-header.patch
+Patch3:		%{name}-boost.patch
+Patch4:		%{name}-OpenEXR.patch
+Patch5:		%{name}-exiv2.patch
 URL:		http://qtpfsgui.sourceforge.net/
 BuildRequires:	CCfits-devel
-BuildRequires:	OpenEXR-devel >= 2.0.1
+BuildRequires:	Imath-devel
+BuildRequires:	OpenEXR-devel >= 3.0
 BuildRequires:	Qt5Concurrent-devel >= 5
 BuildRequires:	Qt5Core-devel >= 5
 BuildRequires:	Qt5Declarative-devel >= 5
@@ -41,7 +45,7 @@ BuildRequires:	boost-devel
 BuildRequires:	cfitsio-devel
 BuildRequires:	cmake >= 3.3
 BuildRequires:	eigen3
-BuildRequires:	exiv2-devel >= 0.21
+BuildRequires:	exiv2-devel >= 0.28
 BuildRequires:	fftw3-single-devel >= 3
 BuildRequires:	gcc-c++ >= 6:4.3
 BuildRequires:	gsl-devel
@@ -59,10 +63,10 @@ BuildRequires:	rpmbuild(macros) >= 1.605
 BuildRequires:	sed >= 4.0
 %{!?with_qtwebengine:BuildConflicts:	Qt5WebEngine-devel}
 Requires(post,postun):	gtk-update-icon-cache
-Requires:	OpenEXR >= 2.0.1
+Requires:	OpenEXR >= 3.0
 Requires:	Qt5Gui-platform-xcb
 Requires:	Qt5Sql-sqldriver-sqlite3
-Requires:	exiv2-libs >= 0.21
+Requires:	exiv2-libs >= 0.28
 Requires:	hicolor-icon-theme
 Obsoletes:	qtpfsgui < 2
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -78,6 +82,9 @@ Luminance HDR - narzędzie do składania obrazów HDR.
 %patch -P0 -p1
 %patch -P1 -p1
 %patch -P2 -p1
+%patch -P3 -p1
+%patch -P4 -p1
+%patch -P5 -p1
 
 %build
 install -d build
@@ -85,8 +92,10 @@ cd build
 %if %{with sse2}
 CXXFLAGS="%{rpmcxxflags} -msse2 -DLUMINANCE_USE_SSE=1"
 %endif
+CPPFLAGS="%{rpmcppflags} -I/usr/include/Imath"
 %cmake .. \
-	-DBUILD_SHARED_LIBS:BOOL=OFF
+	-DBUILD_SHARED_LIBS:BOOL=OFF \
+	-DOPENEXR_VERSION=3.0
 
 %{__make}
 
diff --git a/luminance-hdr-OpenEXR.patch b/luminance-hdr-OpenEXR.patch
new file mode 100644
index 0000000..5fbaf0c
--- /dev/null
+++ b/luminance-hdr-OpenEXR.patch
@@ -0,0 +1,25 @@
+--- luminance-hdr-2.6.1.1/build_files/Modules/FindOpenEXR.cmake.orig	2026-07-05 20:36:45.624507480 +0200
++++ luminance-hdr-2.6.1.1/build_files/Modules/FindOpenEXR.cmake	2026-07-05 20:36:49.371153849 +0200
+@@ -45,7 +45,7 @@ if (${OPENEXR_VERSION} VERSION_LESS "2.1
+     IlmThread
+     Imath
+   )
+-else ()
++elseif (${OPENEXR_VERSION} VERSION_LESS "3.0")
+   string(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENEXR_VERSION})
+   SET(_openexr_FIND_COMPONENTS
+     Half
+@@ -54,6 +54,13 @@ else ()
+     IlmThread-${_openexr_libs_ver}
+     Imath-${_openexr_libs_ver}
+   )
++else ()
++  SET(_openexr_FIND_COMPONENTS
++    OpenEXR OpenEXRUtil OpenEXRCore
++    Iex
++    IlmThread
++    Imath
++  )
+ endif ()
+ 
+ SET(_openexr_SEARCH_DIRS
diff --git a/luminance-hdr-boost.patch b/luminance-hdr-boost.patch
new file mode 100644
index 0000000..90e26da
--- /dev/null
+++ b/luminance-hdr-boost.patch
@@ -0,0 +1,34 @@
+--- luminance-hdr-2.6.1.1/CMakeLists.txt.orig	2026-07-05 17:56:08.613382319 +0200
++++ luminance-hdr-2.6.1.1/CMakeLists.txt	2026-07-05 17:56:20.886649162 +0200
+@@ -177,7 +177,6 @@ IF(WIN32)
+     SET(Boost_USE_STATIC_LIBS ON)
+ ENDIF()
+ FIND_PACKAGE(Boost REQUIRED COMPONENTS program_options thread chrono system date_time)
+-INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ 
+ FIND_PACKAGE(Exiv2 REQUIRED)
+ INCLUDE_DIRECTORIES(${EXIV2_INCLUDE_DIR} "${EXIV2_INCLUDE_DIR}/exiv2")
+--- luminance-hdr-2.6.1.1/build_files/Modules/CompilerSettings.cmake.orig	2026-07-05 20:44:22.202033987 +0200
++++ luminance-hdr-2.6.1.1/build_files/Modules/CompilerSettings.cmake	2026-07-05 20:44:59.498498602 +0200
+@@ -13,7 +13,10 @@ ENDIF()
+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
+     add_definitions(-DBRANCH_PREDICTION)
+     execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
+-    if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
++    if (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0)
++        set(CMAKE_CXX_STANDARD 14)
++        add_definitions(-DLHDR_CXX11_ENABLED)
++    elseif (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
+         message(STATUS "C++11 activated for GCC ${GCC_VERSION}")
+         set(CMAKE_CXX_STANDARD 11)
+         add_definitions(-DLHDR_CXX11_ENABLED)
+--- luminance-hdr-2.6.1.1/src/Libpfs/manip/resize.hxx.orig	2026-07-05 20:48:38.143980764 +0200
++++ luminance-hdr-2.6.1.1/src/Libpfs/manip/resize.hxx	2026-07-05 20:51:03.896524488 +0200
+@@ -23,6 +23,7 @@
+ #define PFS_RESIZE_HXX
+ 
+ #include <boost/math/constants/constants.hpp>
++#include <boost/numeric/conversion/bounds.hpp>
+ #include "copy.h"
+ #include "resize.h"
+ #include "../../sleef.c"
diff --git a/luminance-hdr-exiv2.patch b/luminance-hdr-exiv2.patch
new file mode 100644
index 0000000..529ac58
--- /dev/null
+++ b/luminance-hdr-exiv2.patch
@@ -0,0 +1,122 @@
+--- luminance-hdr-2.6.1.1/src/Libpfs/exif/exifdata.cpp.orig	2026-07-05 20:52:22.272766554 +0200
++++ luminance-hdr-2.6.1.1/src/Libpfs/exif/exifdata.cpp	2026-07-05 20:55:09.725192720 +0200
+@@ -52,7 +52,7 @@ ExifData::ExifData(const std::string &fi
+ void ExifData::fromFile(const std::string &filename) {
+     reset();
+     try {
+-        ::Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++        ::Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
+         image->readMetadata();
+         ::Exiv2::ExifData &exifData = image->exifData();
+ 
+@@ -121,7 +121,7 @@ void ExifData::fromFile(const std::strin
+          */
+         if ((it = exifData.findKey(Exiv2::ExifKey("Exif.Image.Orientation"))) !=
+             exifData.end()) {
+-            long rotation = it->toLong();
++            int64_t rotation = it->toInt64();
+             switch (rotation) {
+                 case 3:
+                     m_orientation = 180;
+@@ -134,7 +134,7 @@ void ExifData::fromFile(const std::strin
+                     break;
+             }
+         }
+-    } catch (Exiv2::AnyError &e) {
++    } catch (Exiv2::Error &e) {
+         return;
+     }
+ }
+--- luminance-hdr-2.6.1.1/src/Exif/ExifOperations.cpp.orig	2026-07-05 21:02:32.382794638 +0200
++++ luminance-hdr-2.6.1.1/src/Exif/ExifOperations.cpp	2026-07-05 21:02:56.912661748 +0200
+@@ -108,7 +108,7 @@ void copyExifData(const std::string &fro
+ #endif
+ 
+     try {
+-        Exiv2::Image::AutoPtr sourceImage;
++        Exiv2::Image::UniquePtr sourceImage;
+         Exiv2::ExifData srcExifData;
+ 
+         if (!from.empty()) {
+@@ -128,7 +128,7 @@ void copyExifData(const std::string &fro
+         }
+ 
+         // get destination exif data
+-        Exiv2::Image::AutoPtr destinationImage = Exiv2::ImageFactory::open(to);
++        Exiv2::Image::UniquePtr destinationImage = Exiv2::ImageFactory::open(to);
+ 
+         if (dontOverwrite) {
+             // doesn't throw anything if it is empty
+@@ -212,7 +212,7 @@ void copyExifData(const std::string &fro
+             destinationImage->setExifData(srcExifData);
+         }
+         destinationImage->writeMetadata();
+-    } catch (Exiv2::AnyError &e) {
++    } catch (Exiv2::Error &e) {
+ #ifndef NDEBUG
+         qDebug() << e.what();
+ #endif
+@@ -250,7 +250,7 @@ float obtain_avg_lum(const std::string&
+ {
+     try
+     {
+-        Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++        Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
+         image->readMetadata();
+         Exiv2::ExifData &exifData = image->exifData();
+         if (exifData.empty())
+@@ -329,7 +329,7 @@ allowed for ev computation purposes.
+             return -1;
+         }
+     }
+-    catch (Exiv2::AnyError& e)
++    catch (Exiv2::Error& e)
+     {
+         return -1;
+     }
+@@ -338,7 +338,7 @@ allowed for ev computation purposes.
+ 
+ float getExposureTime(const std::string &filename) {
+     try {
+-        Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++        Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
+         image->readMetadata();
+         Exiv2::ExifData &exifData = image->exifData();
+         if (exifData.empty()) return -1;
+@@ -374,14 +374,14 @@ float getExposureTime(const std::string
+         } else {
+             return -1;
+         }
+-    } catch (Exiv2::AnyError &e) {
++    } catch (Exiv2::Error &e) {
+         return -1;
+     }
+ }
+ 
+ float getAverageLuminance(const std::string &filename) {
+     try {
+-        Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++        Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
+         image->readMetadata();
+         Exiv2::ExifData &exifData = image->exifData();
+ 
+@@ -403,7 +403,7 @@ float getAverageLuminance(const std::str
+                   << std::endl;
+ 
+         return -1.0;
+-    } catch (Exiv2::AnyError &e) {
++    } catch (Exiv2::Error &e) {
+         return -1.0;
+     }
+ }
+--- luminance-hdr-2.6.1.1/src/TransplantExif/TransplantExifDialog.cpp.orig	2026-07-05 21:31:43.599974146 +0200
++++ luminance-hdr-2.6.1.1/src/TransplantExif/TransplantExifDialog.cpp	2026-07-05 21:31:49.313276528 +0200
+@@ -347,7 +347,7 @@ void TransplantExifDialog::transplant_re
+                 QFile::encodeName((*i_dest)).constData(),
+                 m_Ui->checkBox_dont_overwrite->isChecked());
+             m_Ui->rightlist->item(index)->setBackground(QBrush("#a0ff87"));
+-        } catch (Exiv2::AnyError &e) {
++        } catch (Exiv2::Error &e) {
+             add_log_message("ERROR:" + QString::fromStdString(e.what()));
+             m_Ui->rightlist->item(index)->setBackground(QBrush("#ff743d"));
+         }
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/luminance-hdr.git/commitdiff/7a7bb29899ff404de1fd360a2241235c5b5843a6



More information about the pld-cvs-commit mailing list