From f34f3fd5d4afbaffff8083af08b71d189bc7ffe2 Mon Sep 17 00:00:00 2001
From: Sertonix <sertonix@posteo.net>
Date: Mon, 1 Jul 2024 20:14:48 +0200
Subject: [PATCH] community/rawtherapee: fix linking with libjpeg-turbo

Fixes #16259
---
 community/rawtherapee/APKBUILD            |  7 ++-
 community/rawtherapee/libjpeg-turbo.patch | 63 +++++++++++++++++++++++
 2 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 community/rawtherapee/libjpeg-turbo.patch

diff --git a/community/rawtherapee/APKBUILD b/community/rawtherapee/APKBUILD
index fc3eb9612ef4..9faa6e193538 100644
--- a/community/rawtherapee/APKBUILD
+++ b/community/rawtherapee/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=rawtherapee
 pkgver=5.10
-pkgrel=0
+pkgrel=1
 pkgdesc="Powerful cross-platform raw image processing program"
 url="https://rawtherapee.com"
 arch="all"
@@ -32,7 +32,9 @@ makedepends="
 	"
 options="!check"
 subpackages="$pkgname-doc $pkgname-dbg"
-source="https://rawtherapee.com/shared/source/rawtherapee-$pkgver.tar.xz"
+source="https://rawtherapee.com/shared/source/rawtherapee-$pkgver.tar.xz
+	libjpeg-turbo.patch
+	"
 
 build() {
 	export CXXFLAGS="$CXXFLAGS -flto=auto"
@@ -48,4 +50,5 @@ package() {
 
 sha512sums="
 79d6d54f90fec6006d3dff53aca00ccd385c398ebede2f06a223905d69e1045c6ab772bd5aca4bde01d9086c3c03183be22c0df521166b1af63b60bd7d0e1cfc  rawtherapee-5.10.tar.xz
+ba8ae49b70efaeeec67cebbe0df82ee6027f240a59b3cdf6be5a03550b702492612a5fe9731153b9d095ab76d1fcc55425dfcb4216bf8f5d9b6360b6b809d16b  libjpeg-turbo.patch
 "
diff --git a/community/rawtherapee/libjpeg-turbo.patch b/community/rawtherapee/libjpeg-turbo.patch
new file mode 100644
index 000000000000..f65309fc64e6
--- /dev/null
+++ b/community/rawtherapee/libjpeg-turbo.patch
@@ -0,0 +1,63 @@
+From efdc5bce3b9794847093baeb040937ab55eba86e Mon Sep 17 00:00:00 2001
+From: Richard E Barber <kd6kxr@gmail.com>
+Date: Sun, 19 May 2024 04:27:10 -0700
+Subject: [PATCH] Fix linking with jpeg-turbo
+
+patch via Termux PR
+https://github.com/termux-user-repository/tur/pull/1027
+---
+ rtengine/jdatasrc.cc | 28 ++--------------------------
+ 1 file changed, 2 insertions(+), 26 deletions(-)
+
+diff --git a/rtengine/jdatasrc.cc b/rtengine/jdatasrc.cc
+index fa13b9dd13..a0d12657f2 100644
+--- a/rtengine/jdatasrc.cc
++++ b/rtengine/jdatasrc.cc
+@@ -247,20 +247,6 @@ my_error_exit (j_common_ptr cinfo)
+ #endif
+ }
+ 
+-
+-#ifdef _WIN32
+-#define JVERSION	"6b  27-Mar-1998"
+-#define JCOPYRIGHT_SHORT	"(C) 1998, Thomas G. Lane"
+-#define JMESSAGE(code,string)	string ,
+-
+-const char * const jpeg_std_message_table[] = {
+-#include "jerror.h"
+-  NULL
+-};
+-#else
+-extern const char * const jpeg_std_message_table[];
+-#endif
+-
+ /*
+  * Actual output of an error or trace message.
+  * Applications may override this method to send JPEG messages somewhere
+@@ -409,24 +395,14 @@ reset_error_mgr (j_common_ptr cinfo)
+ GLOBAL(struct jpeg_error_mgr *)
+ my_jpeg_std_error (struct jpeg_error_mgr * err)
+ {
++    err = jpeg_std_error(err);
+ 
++    /* override these functions */
+     err->error_exit = my_error_exit;
+     err->emit_message = emit_message;
+     err->output_message = output_message;
+     err->format_message = format_message;
+     err->reset_error_mgr = reset_error_mgr;
+ 
+-    err->trace_level = 0;     /* default = no tracing */
+-    err->num_warnings = 0;    /* no warnings emitted yet */
+-    err->msg_code = 0;        /* may be useful as a flag for "no error" */
+-
+-    /* Initialize message table pointers */
+-    err->jpeg_message_table = jpeg_std_message_table;
+-    err->last_jpeg_message = (int) JMSG_LASTMSGCODE - 1;
+-
+-    err->addon_message_table = nullptr;
+-    err->first_addon_message = 0; /* for safety */
+-    err->last_addon_message = 0;
+-
+     return err;
+ }
-- 
GitLab