darktable 5.2.1-1 (x86_64) 2025-18011
9999

Status published
Submitter angrypenguinpoland [@T] gmail.com
Platform rolling
Repository extra
URL https://abf.openmandriva.org/build_lists/534669
Packages
darktable-5.2.1-1.x86_64.source
darktable-5.2.1-1.x86_64.binary
darktable-debuginfo-5.2.1-1.x86_64.debuginfo
darktable-debugsource-5.2.1-1.x86_64.binary
darktable-tools-basecurve-5.2.1-1.x86_64.binary
darktable-tools-basecurve-debuginfo-5.2.1-1.x86_64.debuginfo
darktable-tools-noise-5.2.1-1.x86_64.binary
darktable-tools-noise-debuginfo-5.2.1-1.x86_64.debuginfo
Build Date 2025-08-13 17:05:18 +0000 UTC
Last Updated 2025-08-31 01:06:23.67451449 +0000 UTC
$ git diff --patch-with-stat --summary 245ed6637b3fdf811ad77aacb95acc00c038f6a7..9e6c7d83aec9c64514944ccfbe1ec44203e2492d

 .abf.yml                                 |  2 +-
 .onedev-buildspec.yml                    |  4 ++
 darktable-3.6.0-fix-openmp-version.patch | 44 +++++++--------------
 darktable-3.8.0-clang.patch              | 11 +++---
 darktable-4.2.1-exiv2-0.28.patch         | 61 ++++++++++++++++++++++++++++++
 darktable-4.4.2-curl-detection.patch     | 13 +++++++
 darktable.spec                           | 65 ++++++++++++++++++++++++++++----
 fix-aarch64.patch                        |  8 ++--
 8 files changed, 159 insertions(+), 49 deletions(-)
 create mode 100644 .onedev-buildspec.yml
 create mode 100644 darktable-4.2.1-exiv2-0.28.patch
 create mode 100644 darktable-4.4.2-curl-detection.patch

diff --git a/.abf.yml b/.abf.yml
index a9aed16..3abece9 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
 sources:
-  darktable-4.0.1.tar.xz: 282639f8c5e89da3b8ee69ab9d010014fdbf840b
+  darktable-5.2.1.tar.xz: 7e6f12f423f327b0314df402a1e43b7eef84d6de
diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml
new file mode 100644
index 0000000..b95f83a
--- /dev/null
+++ b/.onedev-buildspec.yml
@@ -0,0 +1,4 @@
+version: 40
+imports:
+- projectPath: OpenMandriva/Packages
+  revision: mirroring
diff --git a/darktable-3.6.0-fix-openmp-version.patch b/darktable-3.6.0-fix-openmp-version.patch
index 48b1f71..cc70cd2 100644
--- a/darktable-3.6.0-fix-openmp-version.patch
+++ b/darktable-3.6.0-fix-openmp-version.patch
@@ -1,7 +1,7 @@
-diff -uraN darktable-3.6.1/CMakeLists.txt omv-darktable-3.6.1/CMakeLists.txt
---- darktable-3.6.1/CMakeLists.txt	2021-09-10 08:20:12.000000000 +0200
-+++ omv-darktable-3.6.1/CMakeLists.txt	2021-11-10 02:07:27.230778664 +0100
-@@ -80,13 +80,13 @@
+diff -uraN darktable-4.6.1/CMakeLists.txt omv-darktable-4.6.1/CMakeLists.txt
+--- darktable-4.6.1/CMakeLists.txt	2024-02-16 18:31:09.000000000 +0100
++++ omv-darktable-4.6.1/CMakeLists.txt	2024-04-30 20:38:50.534686312 +0200
+@@ -81,7 +81,7 @@
  
          # Clang has an option to specify the OpenMP standard to use. Specify it.
          # FIXME: Implement this in FindOpenMP.cmake
@@ -10,31 +10,15 @@ diff -uraN darktable-3.6.1/CMakeLists.txt omv-darktable-3.6.1/CMakeLists.txt
  
          set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENMP_VERSION_SPECIFIER}")
          set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENMP_VERSION_SPECIFIER}")
-     endif()
+diff -uraN darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake omv-darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake
+--- darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake	2024-02-14 23:08:05.000000000 +0100
++++ omv-darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake	2024-04-30 20:40:29.394049100 +0200
+@@ -39,7 +39,7 @@
  
--    find_package(OpenMP 4.5 REQUIRED)
-+    find_package(OpenMP 4.5 REQUIRED)
- endif()
+     # NOTE: we want at least 5.0, but we don't need full implementation,
+     # so we neither can't really check for a version, not need to...
+-    find_package(OpenMP)
++    find_package(OpenMP 4.5)
  
- # Check for base threading library
-diff -uraN darktable-3.6.1/src/external/rawspeed/cmake/src-dependencies.cmake omv-darktable-3.6.1/src/external/rawspeed/cmake/src-dependencies.cmake
---- darktable-3.6.1/src/external/rawspeed/cmake/src-dependencies.cmake	2021-09-09 15:34:24.000000000 +0200
-+++ omv-darktable-3.6.1/src/external/rawspeed/cmake/src-dependencies.cmake	2021-11-10 02:06:13.812779364 +0100
-@@ -23,7 +23,7 @@
-   if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR
-      CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-     # Clang has an option to specify the OpenMP standard to use. Specify it.
--    set(OPENMP_VERSION_SPECIFIER "-fopenmp-version=45")
-+    set(OPENMP_VERSION_SPECIFIER "-fopenmp-version=50")
-   endif()
- 
-   set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}")
-@@ -31,7 +31,7 @@
-   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENMP_VERSION_SPECIFIER}")
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENMP_VERSION_SPECIFIER}")
- 
--  find_package(OpenMP 4.5)
-+  find_package(OpenMP 4.5)
- 
-   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}")
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}")
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}")
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}")
diff --git a/darktable-3.8.0-clang.patch b/darktable-3.8.0-clang.patch
index 34875dc..0bf61ca 100644
--- a/darktable-3.8.0-clang.patch
+++ b/darktable-3.8.0-clang.patch
@@ -1,9 +1,8 @@
-diff -up darktable-3.8.0/src/common/dttypes.h.omv~ darktable-3.8.0/src/common/dttypes.h
-diff -up darktable-3.8.0/src/develop/noise_generator.h.omv~ darktable-3.8.0/src/develop/noise_generator.h
---- darktable-3.8.0/src/develop/noise_generator.h.omv~	2021-12-31 03:17:18.977165411 +0100
-+++ darktable-3.8.0/src/develop/noise_generator.h	2021-12-31 03:21:07.366978907 +0100
-@@ -211,8 +211,7 @@ static inline void poisson_noise_simd(co
-   // now we have gaussian noise, then apply Anscombe transform to get poissonian one
+diff -uraN darktable-4.6.0/src/develop/noise_generator.h omv-darktable-4.6.0/src/develop/noise_generator.h
+--- darktable-4.6.0/src/develop/noise_generator.h	2023-12-14 20:44:41.000000000 +0100
++++ omv-darktable-4.6.0/src/develop/noise_generator.h	2023-12-24 15:04:27.817312453 +0100
+@@ -241,8 +241,7 @@
+   // Now we have gaussian noise, then apply Anscombe transform to get poissonian one.
    dt_aligned_pixel_t r = { 0.f };
  
 -  #pragma unroll
diff --git a/darktable-4.2.1-exiv2-0.28.patch b/darktable-4.2.1-exiv2-0.28.patch
new file mode 100644
index 0000000..f185667
--- /dev/null
+++ b/darktable-4.2.1-exiv2-0.28.patch
@@ -0,0 +1,61 @@
+diff -up darktable-4.2.1/src/common/exif.cc.omv~ darktable-4.2.1/src/common/exif.cc
+--- darktable-4.2.1/src/common/exif.cc.omv~	2023-05-18 03:19:31.207916542 +0200
++++ darktable-4.2.1/src/common/exif.cc	2023-05-18 03:22:51.902769296 +0200
+@@ -45,6 +45,13 @@ extern "C" {
+ 
+ #include <exiv2/exiv2.hpp>
+ 
++#if EXIV2_TEST_VERSION(0,28,0)
++#define AnyError Error
++#define toLong toUint32
++#define pData_ data()
++#define size_ size()
++#endif
++
+ #if defined(_WIN32) && defined(EXV_UNICODE_PATH)
+   #define WIDEN(s) pugi::as_wide(s)
+ #else
+@@ -4370,7 +4377,9 @@ int dt_exif_xmp_attach_export(const int
+     }
+     catch(Exiv2::AnyError &e)
+     {
+-#if EXIV2_TEST_VERSION(0,27,0)
++#if EXIV2_TEST_VERSION(0,28,0)
++      if(e.code() == Exiv2::ErrorCode::kerTooLargeJpegSegment)
++#elif EXIV2_TEST_VERSION(0,27,0)
+       if(e.code() == Exiv2::kerTooLargeJpegSegment)
+ #else
+       if(e.code() == 37)
+diff -up darktable-4.2.1/tools/basecurve/exif-wrapper.cpp.omv~ darktable-4.2.1/tools/basecurve/exif-wrapper.cpp
+--- darktable-4.2.1/tools/basecurve/exif-wrapper.cpp.omv~	2023-05-18 03:17:59.658083590 +0200
++++ darktable-4.2.1/tools/basecurve/exif-wrapper.cpp	2023-05-18 03:19:17.477791064 +0200
+@@ -19,6 +19,7 @@
+ #include <exiv2/exif.hpp>
+ #include <exiv2/error.hpp>
+ #include <exiv2/image.hpp>
++#include <exiv2/version.hpp>
+ 
+ #include <cstdio>
+ #include <cassert>
+@@ -36,13 +37,21 @@ exif_get_ascii_datafield(
+ 
+   try
+   {
++#if EXIV2_TEST_VERSION(0,28,0)
++    Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
++#else
+     Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++#endif
+     assert(image.get() != 0);
+     image->readMetadata();
+ 
+     Exiv2::ExifData &exifData = image->exifData();
+ 
++#if EXIV2_TEST_VERSION(0,28,0)
++    Exiv2::Value::UniquePtr val = exifData[key].getValue();
++#else
+     Exiv2::Value::AutoPtr val = exifData[key].getValue();
++#endif
+ 
+     if (val->typeId() != Exiv2::asciiString)
+     {
diff --git a/darktable-4.4.2-curl-detection.patch b/darktable-4.4.2-curl-detection.patch
new file mode 100644
index 0000000..f777a0c
--- /dev/null
+++ b/darktable-4.4.2-curl-detection.patch
@@ -0,0 +1,13 @@
+diff -up darktable-4.4.2/src/imageio/storage/CMakeLists.txt.omv~ darktable-4.4.2/src/imageio/storage/CMakeLists.txt
+--- darktable-4.4.2/src/imageio/storage/CMakeLists.txt.omv~	2023-11-04 19:49:20.714065985 +0100
++++ darktable-4.4.2/src/imageio/storage/CMakeLists.txt	2023-11-04 19:49:33.890193758 +0100
+@@ -7,7 +7,8 @@ add_definitions(-include imageio/storage
+ 
+ set(MODULES disk email gallery latex)
+ 
+-find_package(CURL 7.56)
++#find_package(CURL 7.56)
++set(CURL_FOUND ON)
+ if(CURL_FOUND)
+   message(STATUS "Found recent CURL version to build piwigo.")
+   list(APPEND MODULES piwigo)
diff --git a/darktable.spec b/darktable.spec
index 9b5b7b6..d1b27e4 100644
--- a/darktable.spec
+++ b/darktable.spec
@@ -10,11 +10,11 @@
 
 Summary:	Utility to organize and develop raw images
 Name:		darktable
-Version:	4.0.1
-Release:	3
+Version:	5.2.1
+Release:	1
 Group:		Graphics
 License:	GPLv3+
-Url:		http://www.darktable.org
+Url:		https://www.darktable.org
 Source0:	https://github.com/darktable-org/darktable/releases/download/release-%{version}/%{name}-%{version}.tar.xz
 Source100:	%{name}.rpmlintrc
 # https://github.com/darktable-org/darktable/issues/2093
@@ -22,9 +22,13 @@ Source100:	%{name}.rpmlintrc
 # Needed or build failed with: 
 # builddir/build/BUILD/darktable-3.6.1/src/common/darktable.h:576:3: error: unexpected OpenMP clause 'nontemporal' in directive '#pragma omp simd'
 # for_each_channel(k,aligned(in,out:16) dt_omp_nontemporal(out)) out[k] = in[k];
-Patch1:		darktable-3.6.0-fix-openmp-version.patch
+#Patch1:		darktable-3.6.0-fix-openmp-version.patch
 Patch2:		darktable-3.8.0-clang.patch
-Patch3:		darktable-4.0.0-compile.patch
+#Patch3:		darktable-4.0.0-compile.patch
+Patch4:		fix-aarch64.patch
+# Don't call FindCURL.cmake -- the custom checks
+# clash with the cmake file recently added to CURL itself
+#Patch6:		darktable-4.4.2-curl-detection.patch
 
 BuildRequires:	cmake
 BuildRequires:	ninja
@@ -35,6 +39,7 @@ BuildRequires:	intltool
 BuildRequires:	gettext-devel
 #BuildRequires:	gomp-devel
 BuildRequires:	jpeg-devel
+BuildRequires:	portmidi-devel
 BuildRequires:	pkgconfig(cairo)
 BuildRequires:	pkgconfig(colord)
 BuildRequires:	pkgconfig(colord-gtk)
@@ -44,6 +49,7 @@ BuildRequires:	pkgconfig(flickcurl)
 BuildRequires:	pkgconfig(gconf-2.0)
 BuildRequires:	pkgconfig(gnome-keyring-1)
 BuildRequires:	pkgconfig(GraphicsMagick)
+BuildRequires:	pkgconfig(jasper)
 BuildRequires:	pkgconfig(json-glib-1.0)
 BuildRequires:  pkgconfig(libavif)
 BuildRequires:	pkgconfig(lcms2)
@@ -54,8 +60,10 @@ BuildRequires:	pkgconfig(libgphoto2)
 BuildRequires:	pkgconfig(libpng)
 BuildRequires:	pkgconfig(librsvg-2.0)
 BuildRequires:	pkgconfig(libtiff-4)
+BuildRequires:	pkgconfig(libjxl)
 BuildRequires:  pkgconfig(libwebp)
 BuildRequires:	pkgconfig(OpenEXR)
+BuildRequires:	pkgconfig(sdl2)
 BuildRequires:	pkgconfig(sqlite3)
 BuildRequires:	pkgconfig(zlib)
 BuildRequires:	pugixml-devel
@@ -68,6 +76,8 @@ BuildRequires:	pkgconfig(lua)
 BuildRequires:	pkgconfig(osmgpsmap-1.0)
 BuildRequires:	cups-devel
 BuildRequires:  gmic-devel
+BuildRequires:	gmic
+BuildRequires:	python-jsonschema
 BuildRequires:	po4a
 # For OpenCL
 BuildRequires:	llvm
@@ -86,6 +96,9 @@ BuildRequires:	%{_lib}mlir
 BuildRequires:	llvm-bolt
 BuildRequires:	llvm-polly-devel
 
+Recommends:	%{name}-tools-noise = %{EVRD}
+Recommends:	%{name}-tools-basecurve = %{EVRD}
+
 %description
 Darktable is an open source photography workflow application and RAW developer.
 A virtual lighttable and darkroom for photographers. It manages your digital
@@ -96,13 +109,46 @@ and enables you to develop raw images and enhance them.
 #doc doc/README doc/AUTHORS doc/LICENSE doc/TRANSLATORS
 %{_bindir}/%{name}*
 %{_libdir}/%{name}
-%{_datadir}/applications/%{name}.desktop
-%{_datadir}/metainfo/darktable.appdata.xml
+%{_datadir}/applications/org.darktable.darktable.desktop
+%{_datadir}/metainfo/org.darktable.darktable.appdata.xml
 %{_datadir}/%{name}
 %{_iconsdir}/hicolor/*/apps/%{name}*
 %{_mandir}/man1/%{name}*
 %config %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
 
+%package -n %{name}-tools-noise
+Summary:        Noise profiling tool to add support for new cameras in darktable
+Group:          Graphics/Photography
+Requires:       gnuplot
+Requires:       imagemagick
+
+%description -n %{name}-tools-noise
+The darktable noise command line tool can be used to generate noise profiles for
+new cameras which are not included yet in darktable. You can then contribute
+these noise profiles to the darktable project.
+
+%files -n %{name}-tools-noise
+%{_libexecdir}/%{name}/tools/%{name}-gen-noiseprofile
+%{_libexecdir}/%{name}/tools/%{name}-noiseprofile
+%{_libexecdir}/%{name}/tools/profiling-shot.xmp
+%{_libexecdir}/%{name}/tools/subr.sh
+
+%package -n %{name}-tools-basecurve
+Summary:        Basecurve tool for darktable
+Group:          Graphics/Photography
+Requires:       dcraw
+Requires:       imagemagick
+Requires:       perl-Image-ExifTool
+
+%description -n %{name}-tools-basecurve
+The darktable basecurve command line tool.
+
+%files -n %{name}-tools-basecurve
+%{_libexecdir}/%{name}/tools/%{name}-curve-tool
+%{_libexecdir}/%{name}/tools/%{name}-curve-tool-helper
+%{_datadir}/%{name}/tools/basecurve/
+
+
 #----------------------------------------------------------------------------
 
 %prep
@@ -114,6 +160,9 @@ and enables you to develop raw images and enhance them.
 	-DBINARY_PACKAGE_BUILD=1 \
 	-DPROJECT_VERSION:STRING="%{version}" \
 	-DINSTALL_IOP_EXPERIMENTAL:BOOLEAN=ON \
+	-DBUILD_NOISE_TOOLS=ON \
+	-DBUILD_CURVE_TOOLS=ON \
+	-DRAWSPEED_ENABLE_LTO=ON \
 	-G Ninja
 
 %build
@@ -132,5 +181,5 @@ EOF
 
 %find_lang %{name} --all-name --with-man
 
-desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
+desktop-file-validate %{buildroot}/%{_datadir}/applications/org.darktable.darktable.desktop
 rm -rf %{buildroot}%{_datadir}/doc/%{name}
diff --git a/fix-aarch64.patch b/fix-aarch64.patch
index 1594825..a58a825 100644
--- a/fix-aarch64.patch
+++ b/fix-aarch64.patch
@@ -1,11 +1,11 @@
-diff -uraN darktable-3.4.1/src/is_supported_platform.h omv-darktable-3.4.1/src/is_supported_platform.h
---- darktable-3.4.1/src/is_supported_platform.h	2021-02-03 14:36:49.000000000 +0100
-+++ omv-darktable-3.4.1/src/is_supported_platform.h	2021-02-09 02:42:38.514484224 +0100
+diff -uraN darktable-4.2.0/src/is_supported_platform.h omv-darktable-4.2.0/src/is_supported_platform.h
+--- darktable-4.2.0/src/is_supported_platform.h	2022-12-14 16:18:18.000000000 +0100
++++ omv-darktable-4.2.0/src/is_supported_platform.h	2022-12-24 19:40:37.151786245 +0100
 @@ -30,7 +30,7 @@
  #define DT_SUPPORTED_X86 0
  #endif
  
--#if defined(__aarch64__) && defined(__ARM_64BIT_STATE) && defined(__ARM_ARCH) && defined(__ARM_ARCH_8A)
+-#if defined(__aarch64__) && (defined(__ARM_64BIT_STATE) && defined(__ARM_ARCH) && (defined(__ARM_ARCH_8A) || __ARM_ARCH_PROFILE == 'A') || defined(__APPLE__) || defined(__MINGW64__))
 +#if defined(__aarch64__)
  #define DT_SUPPORTED_ARMv8A 1
  #else
Not Available

369start [@T] proton.meNo Comment.0d 01hrs
369start [@T] proton.meNo Comment.0d 01hrs