On Sat Dec 24, 2022 at 01:44:06PM +0100, Rafael Sadowski wrote:
> Please find below a Christmas diff to update libraw. As usually upstream
> has broken ABI.
>
> - Update libraw to 0.21.0
> - Changelog: https://www.libraw.org/news/libraw-0-21-release
> - fix gegl04, gthumb, krita and libkdcraw with patches from upstream.
> Maintainer CC'ed.
> - Rename swap24 and swap32 to unbreak the build
>
> OK, Comments?
Any comments, any concerns?
>
> Rafael
>
>
> Index: graphics/gegl04/Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/gegl04/Makefile,v
> retrieving revision 1.36
> diff -u -p -u -p -r1.36 Makefile
> --- graphics/gegl04/Makefile 14 Nov 2022 08:03:34 -0000 1.36
> +++ graphics/gegl04/Makefile 24 Dec 2022 12:34:05 -0000
> @@ -4,6 +4,7 @@ V= 0.4.40
> DISTNAME= gegl-${V}
> PKGNAME= gegl04-${V}
> EXTRACT_SUFX= .tar.xz
> +REVISION= 0
>
> SHARED_LIBS += gegl-0.4 0.5 # 0.439.1
>
> Index: graphics/gegl04/patches/patch-operations_external_raw-load_c
> ===================================================================
> RCS file: graphics/gegl04/patches/patch-operations_external_raw-load_c
> diff -N graphics/gegl04/patches/patch-operations_external_raw-load_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ graphics/gegl04/patches/patch-operations_external_raw-load_c 24 Dec
> 2022 12:34:05 -0000
> @@ -0,0 +1,17 @@
> +https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/133
> +Index: operations/external/raw-load.c
> +--- operations/external/raw-load.c.orig
> ++++ operations/external/raw-load.c
> +@@ -114,8 +114,12 @@ prepare (GeglOperation *operation)
> + g_warning ("raw-load: Error Initializing raw library");
> + else
> + {
> ++#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
> ++ p->LibRaw->rawparams.shot_select = o->image_num;
> ++#else
> + p->LibRaw->params.shot_select = o->image_num;
> +
> ++#endif
> + p->LibRaw->params.aber[0] = 1.0;
> + p->LibRaw->params.aber[2] = 1.0;
> + //p->LibRaw->params.gamm[0] = 1.0 / 2.4;
> Index: graphics/gthumb/Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/gthumb/Makefile,v
> retrieving revision 1.129
> diff -u -p -u -p -r1.129 Makefile
> --- graphics/gthumb/Makefile 4 Nov 2022 09:14:23 -0000 1.129
> +++ graphics/gthumb/Makefile 24 Dec 2022 12:34:05 -0000
> @@ -2,7 +2,7 @@ COMMENT= image viewer and browser for GN
>
> GNOME_PROJECT= gthumb
> GNOME_VERSION= 3.12.2
> -REVISION= 1
> +REVISION= 2
>
> CATEGORIES= graphics
>
> Index:
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_c
> ===================================================================
> RCS file:
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_c
> diff -N
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_c
> 24 Dec 2022 12:34:05 -0000
> @@ -0,0 +1,13 @@
> +https://gitlab.gnome.org/GNOME/gthumb/-/commit/da0d3f22a5c3a141211d943e7d963d14090011ec
> +Index: extensions/raw_files/gth-metadata-provider-raw.c
> +--- extensions/raw_files/gth-metadata-provider-raw.c.orig
> ++++ extensions/raw_files/gth-metadata-provider-raw.c
> +@@ -62,7 +62,7 @@ gth_metadata_provider_raw_read (GthMetadataProvider *s
> + if (!_g_mime_type_is_raw (gth_file_data_get_mime_type (file_data)))
> + return;
> +
> +- raw_data = libraw_init (LIBRAW_OPIONS_NO_MEMERR_CALLBACK |
> LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
> ++ raw_data = libraw_init (GTH_LIBRAW_INIT_OPTIONS);
> + if (raw_data == NULL)
> + goto fatal_error;
> +
> Index:
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_h
> ===================================================================
> RCS file:
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_h
> diff -N
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++
> graphics/gthumb/patches/patch-extensions_raw_files_gth-metadata-provider-raw_h
> 24 Dec 2022 12:34:05 -0000
> @@ -0,0 +1,18 @@
> +https://gitlab.gnome.org/GNOME/gthumb/-/commit/da0d3f22a5c3a141211d943e7d963d14090011ec
> +Index: extensions/raw_files/gth-metadata-provider-raw.h
> +--- extensions/raw_files/gth-metadata-provider-raw.h.orig
> ++++ extensions/raw_files/gth-metadata-provider-raw.h
> +@@ -25,6 +25,13 @@
> + #include <glib.h>
> + #include <glib-object.h>
> + #include <gthumb.h>
> ++#include <libraw.h>
> ++
> ++#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
> ++#define GTH_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
> ++#else
> ++#define GTH_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_MEMERR_CALLBACK |
> LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
> ++#endif
> +
> + #define GTH_TYPE_METADATA_PROVIDER_RAW
> (gth_metadata_provider_raw_get_type ())
> + #define GTH_METADATA_PROVIDER_RAW(o) (G_TYPE_CHECK_INSTANCE_CAST
> ((o), GTH_TYPE_METADATA_PROVIDER_RAW, GthMetadataProviderRaw))
> Index: graphics/gthumb/patches/patch-extensions_raw_files_main_c
> ===================================================================
> RCS file: graphics/gthumb/patches/patch-extensions_raw_files_main_c
> diff -N graphics/gthumb/patches/patch-extensions_raw_files_main_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ graphics/gthumb/patches/patch-extensions_raw_files_main_c 24 Dec 2022
> 12:34:05 -0000
> @@ -0,0 +1,22 @@
> +https://gitlab.gnome.org/GNOME/gthumb/-/commit/da0d3f22a5c3a141211d943e7d963d14090011ec
> +Index: extensions/raw_files/main.c
> +--- extensions/raw_files/main.c.orig
> ++++ extensions/raw_files/main.c
> +@@ -213,7 +213,7 @@ _cairo_image_surface_create_from_raw (GInputStream *i
> + size_t size;
> + GthImage *image = NULL;
> +
> +- raw_data = libraw_init (LIBRAW_OPIONS_NO_MEMERR_CALLBACK |
> LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
> ++ raw_data = libraw_init (GTH_LIBRAW_INIT_OPTIONS);
> + if (raw_data == NULL) {
> + _libraw_set_gerror (error, errno);
> + goto fatal_error;
> +@@ -300,7 +300,7 @@ _cairo_image_surface_create_from_raw (GInputStream *i
> + if ((original_width != NULL) && (original_height != NULL)) {
> + libraw_close (raw_data);
> +
> +- raw_data = libraw_init
> (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
> ++ raw_data = libraw_init (GTH_LIBRAW_INIT_OPTIONS);
> + if (raw_data == NULL)
> + goto fatal_error;
> +
> Index: graphics/krita/Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/krita/Makefile,v
> retrieving revision 1.64
> diff -u -p -u -p -r1.64 Makefile
> --- graphics/krita/Makefile 17 Dec 2022 10:01:45 -0000 1.64
> +++ graphics/krita/Makefile 24 Dec 2022 12:34:05 -0000
> @@ -2,6 +2,7 @@ COMMENT = advanced drawing and image man
>
> VERSION = 5.1.4
> DISTNAME = krita-${VERSION}
> +REVISION = 0
>
> SHARED_LIBS += kritabasicflakes 4.1 # 16.0
> SHARED_LIBS += kritacolord 2.0 # 16.0
> Index:
> graphics/krita/patches/patch-plugins_impex_raw_3rdparty_libkdcraw_src_kdcraw_cpp
> ===================================================================
> RCS file:
> graphics/krita/patches/patch-plugins_impex_raw_3rdparty_libkdcraw_src_kdcraw_cpp
> diff -N
> graphics/krita/patches/patch-plugins_impex_raw_3rdparty_libkdcraw_src_kdcraw_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++
> graphics/krita/patches/patch-plugins_impex_raw_3rdparty_libkdcraw_src_kdcraw_cpp
> 24 Dec 2022 12:34:05 -0000
> @@ -0,0 +1,15 @@
> +Index: plugins/impex/raw/3rdparty/libkdcraw/src/kdcraw.cpp
> +--- plugins/impex/raw/3rdparty/libkdcraw/src/kdcraw.cpp.orig
> ++++ plugins/impex/raw/3rdparty/libkdcraw/src/kdcraw.cpp
> +@@ -383,7 +383,11 @@ bool KDcraw::extractRAWData(const QString& filePath, Q
> + d->setProgress(0.3);
> +
> + raw.imgdata.params.output_bps = 16;
> ++#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
> ++ raw.imgdata.rawparams.shot_select = shotSelect;
> ++#else
> + raw.imgdata.params.shot_select = shotSelect;
> ++#endif
> + ret = raw.unpack();
> +
> + if (ret != LIBRAW_SUCCESS)
> Index: graphics/libraw/Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/libraw/Makefile,v
> retrieving revision 1.47
> diff -u -p -u -p -r1.47 Makefile
> --- graphics/libraw/Makefile 11 Mar 2022 19:22:45 -0000 1.47
> +++ graphics/libraw/Makefile 24 Dec 2022 12:34:05 -0000
> @@ -1,11 +1,11 @@
> COMMENT = library for reading RAW files
>
> -DISTNAME = LibRaw-0.20.2
> +DISTNAME = LibRaw-0.21.0
> PKGNAME = ${DISTNAME:L}
> CATEGORIES = graphics
>
> -SHARED_LIBS += raw 4.1 # 15.0
> -SHARED_LIBS += raw_r 4.1 # 15.0
> +SHARED_LIBS += raw 5.0 # 23.0
> +SHARED_LIBS += raw_r 5.0 # 23.0
>
> HOMEPAGE = https://www.libraw.org/
>
> Index: graphics/libraw/distinfo
> ===================================================================
> RCS file: /cvs/ports/graphics/libraw/distinfo,v
> retrieving revision 1.18
> diff -u -p -u -p -r1.18 distinfo
> --- graphics/libraw/distinfo 26 Oct 2020 18:15:37 -0000 1.18
> +++ graphics/libraw/distinfo 24 Dec 2022 12:34:05 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (LibRaw-0.20.2.tar.gz) = 3BtIbCADQ1czBD5OBSc0dzJuUcPqVUxoZKTq+v8QBKY=
> -SIZE (LibRaw-0.20.2.tar.gz) = 1432141
> +SHA256 (LibRaw-0.21.0.tar.gz) = h0ezToU0zC3X74ySxDZBSzV4kE/Uv5uH6mDxeqmfsL0=
> +SIZE (LibRaw-0.21.0.tar.gz) = 1638463
> Index: graphics/libraw/patches/patch-libraw_pc_in
> ===================================================================
> RCS file: /cvs/ports/graphics/libraw/patches/patch-libraw_pc_in,v
> retrieving revision 1.4
> diff -u -p -u -p -r1.4 patch-libraw_pc_in
> --- graphics/libraw/patches/patch-libraw_pc_in 11 Mar 2022 19:22:45
> -0000 1.4
> +++ graphics/libraw/patches/patch-libraw_pc_in 24 Dec 2022 12:34:05
> -0000
> @@ -3,10 +3,11 @@ Do not hardcode -lstdc++ (symbol mismatc
> Index: libraw.pc.in
> --- libraw.pc.in.orig
> +++ libraw.pc.in
> -@@ -7,5 +7,5 @@ Name: libraw
> +@@ -7,6 +7,6 @@ Name: libraw
> Description: Raw image decoder library (non-thread-safe)
> Requires: @PACKAGE_REQUIRES@
> Version: @PACKAGE_VERSION@
> -Libs: -L${libdir} -lraw -lstdc++@PC_OPENMP@
> +Libs: -L${libdir} -lraw@PC_OPENMP@
> + Libs.private: @PACKAGE_LIBS_PRIVATE@
> Cflags: -I${includedir}/libraw -I${includedir}
> Index: graphics/libraw/patches/patch-libraw_r_pc_in
> ===================================================================
> RCS file: /cvs/ports/graphics/libraw/patches/patch-libraw_r_pc_in,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-libraw_r_pc_in
> --- graphics/libraw/patches/patch-libraw_r_pc_in 11 Mar 2022 19:22:45
> -0000 1.3
> +++ graphics/libraw/patches/patch-libraw_r_pc_in 24 Dec 2022 12:34:05
> -0000
> @@ -3,10 +3,11 @@ Do not hardcode -lstdc++ (symbol mismatc
> Index: libraw_r.pc.in
> --- libraw_r.pc.in.orig
> +++ libraw_r.pc.in
> -@@ -7,5 +7,5 @@ Name: libraw
> +@@ -7,6 +7,6 @@ Name: libraw
> Description: Raw image decoder library (thread-safe)
> Requires: @PACKAGE_REQUIRES@
> Version: @PACKAGE_VERSION@
> -Libs: -L${libdir} -lraw_r -lstdc++@PC_OPENMP@
> +Libs: -L${libdir} -lraw_r@PC_OPENMP@
> + Libs.private: @PACKAGE_LIBS_PRIVATE@
> Cflags: -I${includedir}/libraw -I${includedir}
> Index: graphics/libraw/patches/patch-src_decoders_fp_dng_cpp
> ===================================================================
> RCS file: graphics/libraw/patches/patch-src_decoders_fp_dng_cpp
> diff -N graphics/libraw/patches/patch-src_decoders_fp_dng_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ graphics/libraw/patches/patch-src_decoders_fp_dng_cpp 24 Dec 2022
> 12:34:05 -0000
> @@ -0,0 +1,33 @@
> +Index: src/decoders/fp_dng.cpp
> +--- src/decoders/fp_dng.cpp.orig
> ++++ src/decoders/fp_dng.cpp
> +@@ -556,7 +556,7 @@ _forceinline
> + #else
> + inline
> + #endif
> +-void swap24(uchar *data, int len)
> ++void _swap24(uchar *data, int len)
> + {
> + for (int i = 0; i < len - 2; i += 3)
> + {
> +@@ -572,7 +572,7 @@ _forceinline
> + #else
> + inline
> + #endif
> +-void swap32(uchar *data, int len)
> ++void _swap32(uchar *data, int len)
> + {
> + unsigned *d = (unsigned*)data;
> + for (int i = 0; i < len / 4; i++)
> +@@ -646,9 +646,9 @@ void LibRaw::uncompressed_fp_dng_load_raw()
> + if (bytesps == 2 && difford)
> + libraw_swab(dst, fullrowbytes);
> + else if (bytesps == 3 &&
> (libraw_internal_data.unpacker_data.order == 0x4949)) // II-16bit
> +- swap24(dst, fullrowbytes);
> ++ _swap24(dst, fullrowbytes);
> + if (bytesps == 4 && difford)
> +- swap32(dst, fullrowbytes);
> ++ _swap32(dst, fullrowbytes);
> +
> + float lmax = expandFloats(
> + dst,
> Index: x11/kde-applications/libkdcraw/Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/kde-applications/libkdcraw/Makefile,v
> retrieving revision 1.9
> diff -u -p -u -p -r1.9 Makefile
> --- x11/kde-applications/libkdcraw/Makefile 11 Mar 2022 20:16:29 -0000
> 1.9
> +++ x11/kde-applications/libkdcraw/Makefile 24 Dec 2022 12:34:27 -0000
> @@ -2,6 +2,7 @@ COMMENT = KDE wrapper around the LibRaw
> DISTNAME = libkdcraw-${VERSION}
> PKGNAME = libkdcraw-kf5-${VERSION}
> CATEGORIES = devel graphics
> +REVISION = 0
>
> SHARED_LIBS += KF5KDcraw 2.0 # 0.0
>
> Index: x11/kde-applications/libkdcraw/patches/patch-src_kdcraw_cpp
> ===================================================================
> RCS file: x11/kde-applications/libkdcraw/patches/patch-src_kdcraw_cpp
> diff -N x11/kde-applications/libkdcraw/patches/patch-src_kdcraw_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ x11/kde-applications/libkdcraw/patches/patch-src_kdcraw_cpp 24 Dec
> 2022 12:34:27 -0000
> @@ -0,0 +1,17 @@
> +https://invent.kde.org/graphics/libkdcraw/-/commit/0843c601cbb9a9bb5774ed01b7d90e68fd17950a
> +
> +Index: src/kdcraw.cpp
> +--- src/kdcraw.cpp.orig
> ++++ src/kdcraw.cpp
> +@@ -357,7 +357,11 @@ bool KDcraw::extractRAWData(const QString& filePath, Q
> + d->setProgress(0.3);
> +
> + raw.imgdata.params.output_bps = 16;
> ++#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
> ++ raw.imgdata.rawparams.shot_select = shotSelect;
> ++#else
> + raw.imgdata.params.shot_select = shotSelect;
> ++#endif
> + ret = raw.unpack();
> +
> + if (ret != LIBRAW_SUCCESS)
>