summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhe <he@pkgsrc.org>2022-06-26 10:49:54 +0000
committerhe <he@pkgsrc.org>2022-06-26 10:49:54 +0000
commit6d0734c23daf8b9a799449632e9dbea8f12e02ac (patch)
treee120600af298ec5a90e31d2e4773a0e86f067ae3
parent6eebacc5adef9bdca86ac80012b00b7b394f8e70 (diff)
downloadpkgsrc-6d0734c23daf8b9a799449632e9dbea8f12e02ac.tar.gz
graphics/freeimage: add patches to fix build on BE hosts.
Submitted upstream, ref. https://sourceforge.net/p/freeimage/patches/153/
-rw-r--r--graphics/freeimage/distinfo4
-rw-r--r--graphics/freeimage/patches/patch-Source_FreeImage_PluginBMP.cpp34
-rw-r--r--graphics/freeimage/patches/patch-Source_FreeImage_PluginDDS.cpp29
3 files changed, 66 insertions, 1 deletions
diff --git a/graphics/freeimage/distinfo b/graphics/freeimage/distinfo
index 9b4e33e5335..0f4d1ab6f35 100644
--- a/graphics/freeimage/distinfo
+++ b/graphics/freeimage/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.16 2022/05/31 11:49:09 gdt Exp $
+$NetBSD: distinfo,v 1.17 2022/06/26 10:49:54 he Exp $
BLAKE2s (FreeImage3180.zip) = 08cd435f40d668418a710a63bebdd02763d4d7abab1b2eb6958d58c35aab4f7f
SHA512 (FreeImage3180.zip) = 9d9cc7e2d57552c3115e277aeb036e0455204d389026b17a3f513da5be1fd595421655488bb1ec2f76faebed66049119ca55e26e2a6d37024b3fb7ef36ad4818
@@ -10,6 +10,8 @@ SHA1 (patch-Source_FreeImageToolkit_JPEGTransform.cpp) = 4e7372c8947b4359de4d428
SHA1 (patch-Source_FreeImage_J2KHelper.cpp) = a479a373f5a584978129c00d723251a784210603
SHA1 (patch-Source_FreeImage_PSDParser.cpp) = ee4f3e1bb2b6644033a93ac58e12b9126d0dd060
SHA1 (patch-Source_FreeImage_Plugin.cpp) = 58f5d7ca78a66ad7109b0e8dff219c26dfe50a86
+SHA1 (patch-Source_FreeImage_PluginBMP.cpp) = 23629bdaf6ca705986a4f2ab5c680020b267793f
+SHA1 (patch-Source_FreeImage_PluginDDS.cpp) = 02fd0eaaf6758a815b6b98080928206e69346bf0
SHA1 (patch-Source_FreeImage_PluginEXR.cpp) = ce97b25f8968eea7c3216143b766b1c51ccd5e43
SHA1 (patch-Source_FreeImage_PluginJ2K.cpp) = bbc44884aba8be3af2aa824da5cf788d91c27fb6
SHA1 (patch-Source_FreeImage_PluginJP2.cpp) = 9a6d27e039b2050004a2d331389bdfa32dffe681
diff --git a/graphics/freeimage/patches/patch-Source_FreeImage_PluginBMP.cpp b/graphics/freeimage/patches/patch-Source_FreeImage_PluginBMP.cpp
new file mode 100644
index 00000000000..8e3160f3865
--- /dev/null
+++ b/graphics/freeimage/patches/patch-Source_FreeImage_PluginBMP.cpp
@@ -0,0 +1,34 @@
+$NetBSD: patch-Source_FreeImage_PluginBMP.cpp,v 1.1 2022/06/26 10:49:54 he Exp $
+
+Apparently noone has built this on big-endian hosts in a while...
+Replace bpp (undeclared) with dst_bpp (declared local).
+
+--- Source/FreeImage/PluginBMP.cpp.orig 2016-06-15 10:35:30.000000000 +0000
++++ Source/FreeImage/PluginBMP.cpp
+@@ -1419,7 +1419,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_
+
+ free(buffer);
+ #ifdef FREEIMAGE_BIGENDIAN
+- } else if (bpp == 16) {
++ } else if (dst_bpp == 16) {
+ int padding = dst_pitch - dst_width * sizeof(WORD);
+ WORD pad = 0;
+ WORD pixel;
+@@ -1440,7 +1440,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_
+ }
+ #endif
+ #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB
+- } else if (bpp == 24) {
++ } else if (dst_bpp == 24) {
+ int padding = dst_pitch - dst_width * sizeof(FILE_BGR);
+ DWORD pad = 0;
+ FILE_BGR bgr;
+@@ -1461,7 +1461,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_
+ }
+ }
+ }
+- } else if (bpp == 32) {
++ } else if (dst_bpp == 32) {
+ FILE_BGRA bgra;
+ for(unsigned y = 0; y < dst_height; y++) {
+ BYTE *line = FreeImage_GetScanLine(dib, y);
diff --git a/graphics/freeimage/patches/patch-Source_FreeImage_PluginDDS.cpp b/graphics/freeimage/patches/patch-Source_FreeImage_PluginDDS.cpp
new file mode 100644
index 00000000000..36251c8251d
--- /dev/null
+++ b/graphics/freeimage/patches/patch-Source_FreeImage_PluginDDS.cpp
@@ -0,0 +1,29 @@
+$NetBSD: patch-Source_FreeImage_PluginDDS.cpp,v 1.1 2022/06/26 10:49:54 he Exp $
+
+Catch-up for big-endian hosts.
+
+--- Source/FreeImage/PluginDDS.cpp.orig 2018-07-31 15:04:58.000000000 +0000
++++ Source/FreeImage/PluginDDS.cpp
+@@ -356,14 +356,14 @@ SwapHeader(DDSHEADER *header) {
+ for(int i=0; i<11; i++) {
+ SwapLong(&header->surfaceDesc.dwReserved1[i]);
+ }
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwSize);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFlags);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFourCC);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBBitCount);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRBitMask);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwGBitMask);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwBBitMask);
+- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBAlphaBitMask);
++ SwapLong(&header->surfaceDesc.ddspf.dwSize);
++ SwapLong(&header->surfaceDesc.ddspf.dwFlags);
++ SwapLong(&header->surfaceDesc.ddspf.dwFourCC);
++ SwapLong(&header->surfaceDesc.ddspf.dwRGBBitCount);
++ SwapLong(&header->surfaceDesc.ddspf.dwRBitMask);
++ SwapLong(&header->surfaceDesc.ddspf.dwGBitMask);
++ SwapLong(&header->surfaceDesc.ddspf.dwBBitMask);
++ SwapLong(&header->surfaceDesc.ddspf.dwRGBAlphaBitMask);
+ SwapLong(&header->surfaceDesc.ddsCaps.dwCaps1);
+ SwapLong(&header->surfaceDesc.ddsCaps.dwCaps2);
+ SwapLong(&header->surfaceDesc.ddsCaps.dwReserved[0]);