diff options
Diffstat (limited to 'media-libs/freeimage')
9 files changed, 0 insertions, 1597 deletions
diff --git a/media-libs/freeimage/Manifest b/media-libs/freeimage/Manifest index d7eb8ba5764f..292f9ee3c9d8 100644 --- a/media-libs/freeimage/Manifest +++ b/media-libs/freeimage/Manifest @@ -1,4 +1,2 @@ -DIST FreeImage3154.pdf 1007480 BLAKE2B 801d39c4b7eeab833c7225c2d53a3a0e8e9d2a91ea3f7173047705c8b750706f3a4a9ac60f7ba9d5e8150b548bd5add242e9e40f498c57ad9e5a623972bbb239 SHA512 cebde5e2609c9a0c06b4e07e1c595d7d6714895095cd9935f59c8b2ff9b34116248f5453b41f469f6242d87cae79be82d59f6a9ec0f75b1ea3df61ac1f651b28 -DIST FreeImage3154.zip 5513923 BLAKE2B 376b00faaae2c10c9eb36f89726a022734e109ca7ca11951c9e6525f21d2a7ee305ec195be29a272ecb7935ba5d0b61f3d84f26a6aec5f7a9229d5e47cd665bb SHA512 0db9eb7d0ed8e08e10ff4fa274c4484541ca119c3d437a85fdc3b2d9232bf14a7877c79b1e62c8c99278d7020a9f623c161f2342475f3ee526233404138112cc DIST FreeImage3180.pdf 1665541 BLAKE2B 5d40ee6fa0a1e73df0cc961edbd70a2835ef88fb540f123fd81f2bb826d4c949d2a60dfe3fc02406ce632a389935abac0d471c963c9803b8c2aece2b48afb003 SHA512 632f68b14f7a5916a1b95bbf86c268d0afe786a2537472301bb002254aa3195f046efb41f073133633211e985e90edbb99285ab6f42bc55501c756292a3c4c03 DIST FreeImage3180.zip 7415716 BLAKE2B b695271f4e80eb304eccde66e38b5095eceae51fbe0dd97df69c55f364f8440d8c97139b8edc2f01c400f5c53a7336fdfab1e28aa3ea04f485901d5def443d25 SHA512 9d9cc7e2d57552c3115e277aeb036e0455204d389026b17a3f513da5be1fd595421655488bb1ec2f76faebed66049119ca55e26e2a6d37024b3fb7ef36ad4818 diff --git a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2015-0852.patch b/media-libs/freeimage/files/freeimage-3.15.4-CVE-2015-0852.patch deleted file mode 100644 index e0c4b0cf19c4..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2015-0852.patch +++ /dev/null @@ -1,214 +0,0 @@ ---- a/Source/FreeImage/PluginPCX.cpp -+++ b/Source/FreeImage/PluginPCX.cpp -@@ -30,7 +30,7 @@ - // Constants + headers - // ---------------------------------------------------------- - --#define IO_BUF_SIZE 2048 -+#define PCX_IO_BUF_SIZE 2048 - - // ---------------------------------------------------------- - -@@ -120,17 +120,17 @@ - - while (length--) { - if (count == 0) { -- if (*ReadPos >= IO_BUF_SIZE - 1 ) { -- if (*ReadPos == IO_BUF_SIZE - 1) { -+ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) { -+ if (*ReadPos == PCX_IO_BUF_SIZE - 1) { - // we still have one BYTE, copy it to the start pos - -- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1]; -+ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1]; - -- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle); -+ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle); - } else { - // read the complete buffer - -- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle); -+ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle); - } - - *ReadPos = 0; -@@ -346,19 +346,9 @@ - BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; - - try { -- // check PCX identifier -- -- long start_pos = io->tell_proc(handle); -- BOOL validated = pcx_validate(io, handle); -- io->seek_proc(handle, start_pos, SEEK_SET); -- if(!validated) { -- throw FI_MSG_ERROR_MAGIC_NUMBER; -- } -- -- // process the header -- - PCXHEADER header; - -+ // process the header - if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) { - throw FI_MSG_ERROR_PARSING; - } -@@ -366,20 +356,38 @@ - SwapHeader(&header); - #endif - -- // allocate a new DIB -+ // process the window -+ const WORD *window = header.window; // left, upper, right,lower pixel coord. -+ const int left = window[0]; -+ const int top = window[1]; -+ const int right = window[2]; -+ const int bottom = window[3]; - -- unsigned width = header.window[2] - header.window[0] + 1; -- unsigned height = header.window[3] - header.window[1] + 1; -- unsigned bitcount = header.bpp * header.planes; -+ // check image size -+ if((left >= right) || (top >= bottom)) { -+ throw FI_MSG_ERROR_PARSING; -+ } - -- if (bitcount == 24) { -- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); -- } else { -- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); -+ const unsigned width = right - left + 1; -+ const unsigned height = bottom - top + 1; -+ const unsigned bitcount = header.bpp * header.planes; -+ -+ // allocate a new dib -+ switch(bitcount) { -+ case 1: -+ case 4: -+ case 8: -+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount); -+ break; -+ case 24: -+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); -+ break; -+ default: -+ throw FI_MSG_ERROR_DIB_MEMORY; -+ break; - } - - // if the dib couldn't be allocated, throw an error -- - if (!dib) { - throw FI_MSG_ERROR_DIB_MEMORY; - } -@@ -426,19 +434,23 @@ - - if (palette_id == 0x0C) { - BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE)); -- io->read_proc(cmap, 768, 1, handle); - -- pal = FreeImage_GetPalette(dib); -- BYTE *pColormap = &cmap[0]; -+ if(cmap) { -+ io->read_proc(cmap, 768, 1, handle); - -- for(int i = 0; i < 256; i++) { -- pal[i].rgbRed = pColormap[0]; -- pal[i].rgbGreen = pColormap[1]; -- pal[i].rgbBlue = pColormap[2]; -- pColormap += 3; -+ pal = FreeImage_GetPalette(dib); -+ BYTE *pColormap = &cmap[0]; -+ -+ for(int i = 0; i < 256; i++) { -+ pal[i].rgbRed = pColormap[0]; -+ pal[i].rgbGreen = pColormap[1]; -+ pal[i].rgbBlue = pColormap[2]; -+ pColormap += 3; -+ } -+ -+ free(cmap); - } - -- free(cmap); - } - - // wrong palette ID, perhaps a gray scale is needed ? -@@ -463,12 +475,12 @@ - return dib; - } - -- // calculate the line length for the PCX and the DIB -+ // calculate the line length for the PCX and the dib - - // length of raster line in bytes -- unsigned linelength = header.bytes_per_line * header.planes; -- // length of DIB line (rounded to DWORD) in bytes -- unsigned pitch = FreeImage_GetPitch(dib); -+ const unsigned linelength = header.bytes_per_line * header.planes; -+ // length of dib line (rounded to DWORD) in bytes -+ const unsigned pitch = FreeImage_GetPitch(dib); - - // run-length encoding ? - -@@ -478,14 +490,18 @@ - // --------------- - - line = (BYTE*)malloc(linelength * sizeof(BYTE)); -- if(!line) throw FI_MSG_ERROR_MEMORY; -+ if(!line) { -+ throw FI_MSG_ERROR_MEMORY; -+ } - -- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE)); -- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY; -+ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE)); -+ if(!ReadBuf) { -+ throw FI_MSG_ERROR_MEMORY; -+ } - - bits = FreeImage_GetScanLine(dib, height - 1); - -- int ReadPos = IO_BUF_SIZE; -+ int ReadPos = PCX_IO_BUF_SIZE; - - if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) { - BYTE skip; -@@ -497,7 +513,7 @@ - // skip trailing garbage at the end of the scanline - - for (unsigned count = written; count < linelength; count++) { -- if (ReadPos < IO_BUF_SIZE) { -+ if (ReadPos < PCX_IO_BUF_SIZE) { - ReadPos++; - } else { - io->read_proc(&skip, sizeof(BYTE), 1, handle); -@@ -513,7 +529,9 @@ - unsigned x, y, written; - - buffer = (BYTE*)malloc(width * sizeof(BYTE)); -- if(!buffer) throw FI_MSG_ERROR_MEMORY; -+ if(!buffer) { -+ throw FI_MSG_ERROR_MEMORY; -+ } - - for (y = 0; y < height; y++) { - written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos); -@@ -532,7 +550,7 @@ - } - } - -- // then write the DIB row -+ // then write the dib row - - for (x = 0; x < width / 2; x++) { - bits[x] = (buffer[2*x] << 4) | buffer[2*x+1]; -@@ -541,7 +559,7 @@ - // skip trailing garbage at the end of the scanline - - for (unsigned count = written; count < linelength; count++) { -- if (ReadPos < IO_BUF_SIZE) { -+ if (ReadPos < PCX_IO_BUF_SIZE) { - ReadPos++; - } else { - io->read_proc(&skip, sizeof(BYTE), 1, handle); diff --git a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-1.patch b/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-1.patch deleted file mode 100644 index 1e94602e0e5e..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-1.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/Source/FreeImage/PluginXPM.cpp -+++ b/Source/FreeImage/PluginXPM.cpp -@@ -181,6 +181,11 @@ - } - free(str); - -+ // check info string -+ if((width <= 0) || (height <= 0) || (colors <= 0) || (cpp <= 0)) { -+ throw "Improperly formed info string"; -+ } -+ - if (colors > 256) { - dib = FreeImage_AllocateHeader(header_only, width, height, 24, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); - } else { -@@ -193,7 +198,7 @@ - FILE_RGBA rgba; - - str = ReadString(io, handle); -- if(!str) -+ if(!str || (strlen(str) < cpp)) - throw "Error reading color strings"; - - std::string chrs(str,cpp); //create a string for the color chars using the first cpp chars diff --git a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-2.patch b/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-2.patch deleted file mode 100644 index 542a9aeab094..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-CVE-2016-5684-2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Source/FreeImage/PluginXPM.cpp -+++ b/Source/FreeImage/PluginXPM.cpp -@@ -198,7 +198,7 @@ - FILE_RGBA rgba; - - str = ReadString(io, handle); -- if(!str || (strlen(str) < cpp)) -+ if(!str || (strlen(str) < (size_t)cpp)) - throw "Error reading color strings"; - - std::string chrs(str,cpp); //create a string for the color chars using the first cpp chars diff --git a/media-libs/freeimage/files/freeimage-3.15.4-libjpeg-turbo.patch b/media-libs/freeimage/files/freeimage-3.15.4-libjpeg-turbo.patch deleted file mode 100644 index 62037c59deb2..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-libjpeg-turbo.patch +++ /dev/null @@ -1,531 +0,0 @@ ---- /dev/null -+++ b/LibJPEG/jpegcomp.h -@@ -0,0 +1,26 @@ -+/* -+ * jpegcomp.h -+ * -+ * Copyright (C) 2010, D. R. Commander -+ * For conditions of distribution and use, see the accompanying README file. -+ * -+ * JPEG compatibility macros -+ * These declarations are considered internal to the JPEG library; most -+ * applications using the library shouldn't need to include this file. -+ */ -+ -+#if JPEG_LIB_VERSION >= 70 -+#define _DCT_scaled_size DCT_h_scaled_size -+#define _min_DCT_scaled_size min_DCT_h_scaled_size -+#define _min_DCT_h_scaled_size min_DCT_h_scaled_size -+#define _min_DCT_v_scaled_size min_DCT_v_scaled_size -+#define _jpeg_width jpeg_width -+#define _jpeg_height jpeg_height -+#else -+#define _DCT_scaled_size DCT_scaled_size -+#define _min_DCT_scaled_size min_DCT_scaled_size -+#define _min_DCT_h_scaled_size min_DCT_scaled_size -+#define _min_DCT_v_scaled_size min_DCT_scaled_size -+#define _jpeg_width image_width -+#define _jpeg_height image_height -+#endif ---- a/LibJPEG/jpegint.h -+++ b/LibJPEG/jpegint.h -@@ -2,7 +2,7 @@ - * jpegint.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. -- * Modified 1997-2011 by Guido Vollbeding. -+ * Modified 1997-2009 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * -@@ -100,16 +100,14 @@ - }; - - /* Forward DCT (also controls coefficient quantization) */ --typedef JMETHOD(void, forward_DCT_ptr, -- (j_compress_ptr cinfo, jpeg_component_info * compptr, -- JSAMPARRAY sample_data, JBLOCKROW coef_blocks, -- JDIMENSION start_row, JDIMENSION start_col, -- JDIMENSION num_blocks)); -- - struct jpeg_forward_dct { - JMETHOD(void, start_pass, (j_compress_ptr cinfo)); -- /* It is useful to allow each component to have a separate FDCT method. */ -- forward_DCT_ptr forward_DCT[MAX_COMPONENTS]; -+ /* perhaps this should be an array??? */ -+ JMETHOD(void, forward_DCT, (j_compress_ptr cinfo, -+ jpeg_component_info * compptr, -+ JSAMPARRAY sample_data, JBLOCKROW coef_blocks, -+ JDIMENSION start_row, JDIMENSION start_col, -+ JDIMENSION num_blocks)); - }; - - /* Entropy encoding */ -@@ -213,6 +211,10 @@ - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); - JMETHOD(boolean, decode_mcu, (j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); -+ -+ /* This is here to share code between baseline and progressive decoders; */ -+ /* other modules probably should not use it */ -+ boolean insufficient_data; /* set TRUE after emitting warning */ - }; - - /* Inverse DCT (also performs dequantization) */ -@@ -302,6 +304,7 @@ - #define jinit_downsampler jIDownsampler - #define jinit_forward_dct jIFDCT - #define jinit_huff_encoder jIHEncoder -+#define jinit_phuff_encoder jIPHEncoder - #define jinit_arith_encoder jIAEncoder - #define jinit_marker_writer jIMWriter - #define jinit_master_decompress jIDMaster -@@ -311,6 +314,7 @@ - #define jinit_input_controller jIInCtlr - #define jinit_marker_reader jIMReader - #define jinit_huff_decoder jIHDecoder -+#define jinit_phuff_decoder jIPHDecoder - #define jinit_arith_decoder jIADecoder - #define jinit_inverse_dct jIIDCT - #define jinit_upsampler jIUpsampler -@@ -321,41 +325,15 @@ - #define jinit_memory_mgr jIMemMgr - #define jdiv_round_up jDivRound - #define jround_up jRound --#define jzero_far jZeroFar - #define jcopy_sample_rows jCopySamples - #define jcopy_block_row jCopyBlocks -+#define jzero_far jZeroFar - #define jpeg_zigzag_order jZIGTable - #define jpeg_natural_order jZAGTable --#define jpeg_natural_order7 jZAG7Table --#define jpeg_natural_order6 jZAG6Table --#define jpeg_natural_order5 jZAG5Table --#define jpeg_natural_order4 jZAG4Table --#define jpeg_natural_order3 jZAG3Table --#define jpeg_natural_order2 jZAG2Table - #define jpeg_aritab jAriTab - #endif /* NEED_SHORT_EXTERNAL_NAMES */ - - --/* On normal machines we can apply MEMCOPY() and MEMZERO() to sample arrays -- * and coefficient-block arrays. This won't work on 80x86 because the arrays -- * are FAR and we're assuming a small-pointer memory model. However, some -- * DOS compilers provide far-pointer versions of memcpy() and memset() even -- * in the small-model libraries. These will be used if USE_FMEM is defined. -- * Otherwise, the routines in jutils.c do it the hard way. -- */ -- --#ifndef NEED_FAR_POINTERS /* normal case, same as regular macro */ --#define FMEMZERO(target,size) MEMZERO(target,size) --#else /* 80x86 case */ --#ifdef USE_FMEM --#define FMEMZERO(target,size) _fmemset((void FAR *)(target), 0, (size_t)(size)) --#else --EXTERN(void) jzero_far JPP((void FAR * target, size_t bytestozero)); --#define FMEMZERO(target,size) jzero_far(target, size) --#endif --#endif -- -- - /* Compression module initialization routines */ - EXTERN(void) jinit_compress_master JPP((j_compress_ptr cinfo)); - EXTERN(void) jinit_c_master_control JPP((j_compress_ptr cinfo, -@@ -370,6 +348,7 @@ - EXTERN(void) jinit_downsampler JPP((j_compress_ptr cinfo)); - EXTERN(void) jinit_forward_dct JPP((j_compress_ptr cinfo)); - EXTERN(void) jinit_huff_encoder JPP((j_compress_ptr cinfo)); -+EXTERN(void) jinit_phuff_encoder JPP((j_compress_ptr cinfo)); - EXTERN(void) jinit_arith_encoder JPP((j_compress_ptr cinfo)); - EXTERN(void) jinit_marker_writer JPP((j_compress_ptr cinfo)); - /* Decompression module initialization routines */ -@@ -383,6 +362,7 @@ - EXTERN(void) jinit_input_controller JPP((j_decompress_ptr cinfo)); - EXTERN(void) jinit_marker_reader JPP((j_decompress_ptr cinfo)); - EXTERN(void) jinit_huff_decoder JPP((j_decompress_ptr cinfo)); -+EXTERN(void) jinit_phuff_decoder JPP((j_decompress_ptr cinfo)); - EXTERN(void) jinit_arith_decoder JPP((j_decompress_ptr cinfo)); - EXTERN(void) jinit_inverse_dct JPP((j_decompress_ptr cinfo)); - EXTERN(void) jinit_upsampler JPP((j_decompress_ptr cinfo)); -@@ -401,17 +381,12 @@ - int num_rows, JDIMENSION num_cols)); - EXTERN(void) jcopy_block_row JPP((JBLOCKROW input_row, JBLOCKROW output_row, - JDIMENSION num_blocks)); -+EXTERN(void) jzero_far JPP((void FAR * target, size_t bytestozero)); - /* Constant tables in jutils.c */ - #if 0 /* This table is not actually needed in v6a */ - extern const int jpeg_zigzag_order[]; /* natural coef order to zigzag order */ - #endif - extern const int jpeg_natural_order[]; /* zigzag coef order to natural order */ --extern const int jpeg_natural_order7[]; /* zz to natural order for 7x7 block */ --extern const int jpeg_natural_order6[]; /* zz to natural order for 6x6 block */ --extern const int jpeg_natural_order5[]; /* zz to natural order for 5x5 block */ --extern const int jpeg_natural_order4[]; /* zz to natural order for 4x4 block */ --extern const int jpeg_natural_order3[]; /* zz to natural order for 3x3 block */ --extern const int jpeg_natural_order2[]; /* zz to natural order for 2x2 block */ - - /* Arithmetic coding probability estimation tables in jaricom.c */ - extern const INT32 jpeg_aritab[]; ---- a/LibJPEG/transupp.h -+++ b/LibJPEG/transupp.h -@@ -1,7 +1,7 @@ - /* - * transupp.h - * -- * Copyright (C) 1997-2011, Thomas G. Lane, Guido Vollbeding. -+ * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * -@@ -57,7 +57,6 @@ - * corner up and/or left to make it so, simultaneously increasing the region - * dimensions to keep the lower right crop corner unchanged. (Thus, the - * output image covers at least the requested region, but may cover more.) -- * The adjustment of the region dimensions may be optionally disabled. - * - * We also provide a lossless-resize option, which is kind of a lossless-crop - * operation in the DCT coefficient block domain - it discards higher-order -@@ -107,15 +106,13 @@ - - /* - * Codes for crop parameters, which can individually be unspecified, -- * positive or negative for xoffset or yoffset, -- * positive or forced for width or height. -+ * positive, or negative. (Negative width or height makes no sense, though.) - */ - - typedef enum { -- JCROP_UNSET, -- JCROP_POS, -- JCROP_NEG, -- JCROP_FORCE -+ JCROP_UNSET, -+ JCROP_POS, -+ JCROP_NEG - } JCROP_CODE; - - /* -@@ -131,14 +128,21 @@ - boolean trim; /* if TRUE, trim partial MCUs as needed */ - boolean force_grayscale; /* if TRUE, convert color image to grayscale */ - boolean crop; /* if TRUE, crop source image */ -+ boolean slow_hflip; /* For best performance, the JXFORM_FLIP_H transform -+ normally modifies the source coefficients in place. -+ Setting this to TRUE will instead use a slower, -+ double-buffered algorithm, which leaves the source -+ coefficients in tact (necessary if other transformed -+ images must be generated from the same set of -+ coefficients. */ - - /* Crop parameters: application need not set these unless crop is TRUE. - * These can be filled in by jtransform_parse_crop_spec(). - */ - JDIMENSION crop_width; /* Width of selected region */ -- JCROP_CODE crop_width_set; /* (forced disables adjustment) */ -+ JCROP_CODE crop_width_set; - JDIMENSION crop_height; /* Height of selected region */ -- JCROP_CODE crop_height_set; /* (forced disables adjustment) */ -+ JCROP_CODE crop_height_set; - JDIMENSION crop_xoffset; /* X offset of selected region */ - JCROP_CODE crop_xoffset_set; /* (negative measures from right edge) */ - JDIMENSION crop_yoffset; /* Y offset of selected region */ ---- a/LibJPEG/transupp.c -+++ b/LibJPEG/transupp.c -@@ -1,7 +1,8 @@ - /* - * transupp.c - * -- * Copyright (C) 1997-2011, Thomas G. Lane, Guido Vollbeding. -+ * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding. -+ * Copyright (C) 2010, D. R. Commander. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * -@@ -20,9 +21,19 @@ - #include "jinclude.h" - #include "jpeglib.h" - #include "transupp.h" /* My own external interface */ -+#include "jpegcomp.h" - #include <ctype.h> /* to declare isdigit() */ - - -+#if JPEG_LIB_VERSION >= 70 -+#define dstinfo_min_DCT_h_scaled_size dstinfo->min_DCT_h_scaled_size -+#define dstinfo_min_DCT_v_scaled_size dstinfo->min_DCT_v_scaled_size -+#else -+#define dstinfo_min_DCT_h_scaled_size DCTSIZE -+#define dstinfo_min_DCT_v_scaled_size DCTSIZE -+#endif -+ -+ - #if TRANSFORMS_SUPPORTED - - /* -@@ -134,7 +145,7 @@ - * Partial iMCUs at the right edge are left untouched. - */ - MCU_cols = srcinfo->output_width / -- (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); -+ (dstinfo->max_h_samp_factor * dstinfo_min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -200,7 +211,7 @@ - * this is essentially the same as the routine above. - */ - MCU_cols = srcinfo->output_width / -- (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); -+ (dstinfo->max_h_samp_factor * dstinfo_min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -265,7 +276,7 @@ - * Partial iMCUs at the bottom edge are copied verbatim. - */ - MCU_rows = srcinfo->output_height / -- (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); -+ (dstinfo->max_v_samp_factor * dstinfo_min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -393,7 +404,7 @@ - * not mirrored. - */ - MCU_cols = srcinfo->output_height / -- (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); -+ (dstinfo->max_h_samp_factor * dstinfo_min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -474,7 +485,7 @@ - * not mirrored. - */ - MCU_rows = srcinfo->output_width / -- (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); -+ (dstinfo->max_v_samp_factor * dstinfo_min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -542,9 +553,9 @@ - jpeg_component_info *compptr; - - MCU_cols = srcinfo->output_width / -- (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); -+ (dstinfo->max_h_samp_factor * dstinfo_min_DCT_h_scaled_size); - MCU_rows = srcinfo->output_height / -- (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); -+ (dstinfo->max_v_samp_factor * dstinfo_min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -653,9 +664,9 @@ - jpeg_component_info *compptr; - - MCU_cols = srcinfo->output_height / -- (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); -+ (dstinfo->max_h_samp_factor * dstinfo_min_DCT_h_scaled_size); - MCU_rows = srcinfo->output_width / -- (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); -+ (dstinfo->max_v_samp_factor * dstinfo_min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; -@@ -771,7 +782,7 @@ - * The routine returns TRUE if the spec string is valid, FALSE if not. - * - * The crop spec string should have the format -- * <width>[f]x<height>[f]{+-}<xoffset>{+-}<yoffset> -+ * <width>x<height>{+-}<xoffset>{+-}<yoffset> - * where width, height, xoffset, and yoffset are unsigned integers. - * Each of the elements can be omitted to indicate a default value. - * (A weakness of this style is that it is not possible to omit xoffset -@@ -793,22 +804,14 @@ - /* fetch width */ - if (! jt_read_integer(&spec, &info->crop_width)) - return FALSE; -- if (*spec == 'f' || *spec == 'F') { -- spec++; -- info->crop_width_set = JCROP_FORCE; -- } else -- info->crop_width_set = JCROP_POS; -+ info->crop_width_set = JCROP_POS; - } -- if (*spec == 'x' || *spec == 'X') { -+ if (*spec == 'x' || *spec == 'X') { - /* fetch height */ - spec++; - if (! jt_read_integer(&spec, &info->crop_height)) - return FALSE; -- if (*spec == 'f' || *spec == 'F') { -- spec++; -- info->crop_height_set = JCROP_FORCE; -- } else -- info->crop_height_set = JCROP_POS; -+ info->crop_height_set = JCROP_POS; - } - if (*spec == '+' || *spec == '-') { - /* fetch xoffset */ -@@ -897,7 +900,12 @@ - info->num_components = srcinfo->num_components; - - /* Compute output image dimensions and related values. */ -+#if JPEG_LIB_VERSION >= 80 - jpeg_core_output_dimensions(srcinfo); -+#else -+ srcinfo->output_width = srcinfo->image_width; -+ srcinfo->output_height = srcinfo->image_height; -+#endif - - /* Return right away if -perfect is given and transformation is not perfect. - */ -@@ -905,15 +913,15 @@ - if (info->num_components == 1) { - if (!jtransform_perfect_transform(srcinfo->output_width, - srcinfo->output_height, -- srcinfo->min_DCT_h_scaled_size, -- srcinfo->min_DCT_v_scaled_size, -+ srcinfo->_min_DCT_h_scaled_size, -+ srcinfo->_min_DCT_v_scaled_size, - info->transform)) - return FALSE; - } else { - if (!jtransform_perfect_transform(srcinfo->output_width, - srcinfo->output_height, -- srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size, -- srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size, -+ srcinfo->max_h_samp_factor * srcinfo->_min_DCT_h_scaled_size, -+ srcinfo->max_v_samp_factor * srcinfo->_min_DCT_v_scaled_size, - info->transform)) - return FALSE; - } -@@ -932,26 +940,26 @@ - info->output_width = srcinfo->output_height; - info->output_height = srcinfo->output_width; - if (info->num_components == 1) { -- info->iMCU_sample_width = srcinfo->min_DCT_v_scaled_size; -- info->iMCU_sample_height = srcinfo->min_DCT_h_scaled_size; -+ info->iMCU_sample_width = srcinfo->_min_DCT_v_scaled_size; -+ info->iMCU_sample_height = srcinfo->_min_DCT_h_scaled_size; - } else { - info->iMCU_sample_width = -- srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size; -+ srcinfo->max_v_samp_factor * srcinfo->_min_DCT_v_scaled_size; - info->iMCU_sample_height = -- srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size; -+ srcinfo->max_h_samp_factor * srcinfo->_min_DCT_h_scaled_size; - } - break; - default: - info->output_width = srcinfo->output_width; - info->output_height = srcinfo->output_height; - if (info->num_components == 1) { -- info->iMCU_sample_width = srcinfo->min_DCT_h_scaled_size; -- info->iMCU_sample_height = srcinfo->min_DCT_v_scaled_size; -+ info->iMCU_sample_width = srcinfo->_min_DCT_h_scaled_size; -+ info->iMCU_sample_height = srcinfo->_min_DCT_v_scaled_size; - } else { - info->iMCU_sample_width = -- srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size; -+ srcinfo->max_h_samp_factor * srcinfo->_min_DCT_h_scaled_size; - info->iMCU_sample_height = -- srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size; -+ srcinfo->max_v_samp_factor * srcinfo->_min_DCT_v_scaled_size; - } - break; - } -@@ -988,16 +996,10 @@ - else - yoffset = info->crop_yoffset; - /* Now adjust so that upper left corner falls at an iMCU boundary */ -- if (info->crop_width_set == JCROP_FORCE) -- info->output_width = info->crop_width; -- else -- info->output_width = -- info->crop_width + (xoffset % info->iMCU_sample_width); -- if (info->crop_height_set == JCROP_FORCE) -- info->output_height = info->crop_height; -- else -- info->output_height = -- info->crop_height + (yoffset % info->iMCU_sample_height); -+ info->output_width = -+ info->crop_width + (xoffset % info->iMCU_sample_width); -+ info->output_height = -+ info->crop_height + (yoffset % info->iMCU_sample_height); - /* Save x/y offsets measured in iMCUs */ - info->x_crop_offset = xoffset / info->iMCU_sample_width; - info->y_crop_offset = yoffset / info->iMCU_sample_height; -@@ -1020,7 +1022,7 @@ - case JXFORM_FLIP_H: - if (info->trim) - trim_right_edge(info, srcinfo->output_width); -- if (info->y_crop_offset != 0) -+ if (info->y_crop_offset != 0 || info->slow_hflip) - need_workspace = TRUE; - /* do_flip_h_no_crop doesn't need a workspace array */ - break; -@@ -1124,9 +1126,11 @@ - jtemp = dstinfo->image_width; - dstinfo->image_width = dstinfo->image_height; - dstinfo->image_height = jtemp; -+#if JPEG_LIB_VERSION >= 70 - itemp = dstinfo->min_DCT_h_scaled_size; - dstinfo->min_DCT_h_scaled_size = dstinfo->min_DCT_v_scaled_size; - dstinfo->min_DCT_v_scaled_size = itemp; -+#endif - - /* Transpose sampling factors */ - for (ci = 0; ci < dstinfo->num_components; ci++) { -@@ -1362,8 +1366,10 @@ - /* Correct the destination's image dimensions as necessary - * for rotate/flip, resize, and crop operations. - */ -+#if JPEG_LIB_VERSION >= 70 - dstinfo->jpeg_width = info->output_width; - dstinfo->jpeg_height = info->output_height; -+#endif - - /* Transpose destination image parameters */ - switch (info->transform) { -@@ -1371,9 +1377,17 @@ - case JXFORM_TRANSVERSE: - case JXFORM_ROT_90: - case JXFORM_ROT_270: -+#if JPEG_LIB_VERSION < 70 -+ dstinfo->image_width = info->output_height; -+ dstinfo->image_height = info->output_width; -+#endif - transpose_critical_parameters(dstinfo); - break; - default: -+#if JPEG_LIB_VERSION < 70 -+ dstinfo->image_width = info->output_width; -+ dstinfo->image_height = info->output_height; -+#endif - break; - } - -@@ -1389,6 +1403,7 @@ - GETJOCTET(srcinfo->marker_list->data[5]) == 0) { - /* Suppress output of JFIF marker */ - dstinfo->write_JFIF_header = FALSE; -+#if JPEG_LIB_VERSION >= 70 - /* Adjust Exif image parameters */ - if (dstinfo->jpeg_width != srcinfo->image_width || - dstinfo->jpeg_height != srcinfo->image_height) -@@ -1396,6 +1411,7 @@ - adjust_exif_parameters(srcinfo->marker_list->data + 6, - srcinfo->marker_list->data_length - 6, - dstinfo->jpeg_width, dstinfo->jpeg_height); -+#endif - } - - /* Return the appropriate output data set */ -@@ -1432,7 +1448,7 @@ - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_FLIP_H: -- if (info->y_crop_offset != 0) -+ if (info->y_crop_offset != 0 || info->slow_hflip) - do_flip_h(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - else diff --git a/media-libs/freeimage/files/freeimage-3.15.4-libjpeg9.patch b/media-libs/freeimage/files/freeimage-3.15.4-libjpeg9.patch deleted file mode 100644 index 24eb9e010fca..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-libjpeg9.patch +++ /dev/null @@ -1,45 +0,0 @@ -Bug: https://bugs.gentoo.org/647422
-Upstream Patch: https://sourceforge.net/p/freeimage/patches/130/
-
-diff -Naur a/Source/FreeImage/PluginJPEG.cpp b/Source/FreeImage/PluginJPEG.cpp ---- a/Source/FreeImage/PluginJPEG.cpp 2018-03-24 23:24:11.062695375 -0400 -+++ b/Source/FreeImage/PluginJPEG.cpp 2018-03-24 23:25:39.451124161 -0400 -@@ -1586,14 +1586,14 @@ - - // thumbnail support (JFIF 1.02 extension markers) - if(FreeImage_GetThumbnail(dib) != NULL) { -- cinfo.write_JFIF_header = 1; //<### force it, though when color is CMYK it will be incorrect -+ cinfo.write_JFIF_header = static_cast<boolean>(1); //<### force it, though when color is CMYK it will be incorrect - cinfo.JFIF_minor_version = 2; - } - - // baseline JPEG support - if ((flags & JPEG_BASELINE) == JPEG_BASELINE) { -- cinfo.write_JFIF_header = 0; // No marker for non-JFIF colorspaces -- cinfo.write_Adobe_marker = 0; // write no Adobe marker by default -+ cinfo.write_JFIF_header = static_cast<boolean>(0); // No marker for non-JFIF colorspaces -+ cinfo.write_Adobe_marker = static_cast<boolean>(0); // write no Adobe marker by default - } - - // set subsampling options if required -diff -Naur a/Source/FreeImage.h b/Source/FreeImage.h ---- a/Source/FreeImage.h 2018-03-24 23:24:11.066695395 -0400 -+++ b/Source/FreeImage.h 2018-03-24 23:26:35.945391182 -0400 -@@ -117,12 +117,17 @@ - #ifndef _WINDOWS_ - #define _WINDOWS_ - -+#if JPEG_LIB_VERSION < 90 -+ - #ifndef FALSE - #define FALSE 0 - #endif - #ifndef TRUE - #define TRUE 1 - #endif -+ -+#endif -+ - #ifndef NULL - #define NULL 0 - #endif diff --git a/media-libs/freeimage/files/freeimage-3.15.4-raw.patch b/media-libs/freeimage/files/freeimage-3.15.4-raw.patch deleted file mode 100644 index 44f566627e2f..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-raw.patch +++ /dev/null @@ -1,16 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=458516 - ---- FreeImage/Source/FreeImage.h -+++ FreeImage/Source/FreeImage.h -@@ -141,8 +141,10 @@ - typedef uint16_t WORD; - typedef uint32_t DWORD; - typedef int32_t LONG; -+#ifndef _LIBRAW_TYPES_H - typedef int64_t INT64; - typedef uint64_t UINT64; -+#endif - #else - // MS is not C99 ISO compliant - typedef long BOOL; - diff --git a/media-libs/freeimage/files/freeimage-3.15.4-unbundling.patch b/media-libs/freeimage/files/freeimage-3.15.4-unbundling.patch deleted file mode 100644 index ac2ac54ce5cf..000000000000 --- a/media-libs/freeimage/files/freeimage-3.15.4-unbundling.patch +++ /dev/null @@ -1,639 +0,0 @@ -lots of fixes here: - - use system graphics libraries - - make all of them optional - - drop root users from install (fix user installs) - - make static lib build optional - - link with CXX and CXXFLAGS (since this is C++ code) - ---- a/Makefile.gnu -+++ b/Makefile.gnu -@@ -11,7 +11,24 @@ - # Converts cr/lf to just lf - DOS2UNIX = dos2unix - --LIBRARIES = -lstdc++ -+PKG_CONFIG ?= pkg-config -+ -+USE_EXR ?= yes -+USE_JPEG ?= yes -+USE_JPEG2K ?= yes -+USE_MNG ?= yes -+USE_PNG ?= yes -+USE_TIFF ?= yes -+USE_RAW ?= yes -+ -+LIBRARIES-yes = $(shell $(PKG_CONFIG) --libs zlib) -+LIBRARIES-$(USE_EXR) += $(shell $(PKG_CONFIG) --libs OpenEXR) -+LIBRARIES-$(USE_JPEG) += -ljpeg -+LIBRARIES-$(USE_JPEG2K) += $(shell $(PKG_CONFIG) --libs libopenjpeg) -+LIBRARIES-$(USE_MNG) += -lmng -+LIBRARIES-$(USE_PNG) += $(shell $(PKG_CONFIG) --libs libpng) -+LIBRARIES-$(USE_TIFF) += $(shell $(PKG_CONFIG) --libs libtiff-4 IlmBase) -+LIBRARIES-$(USE_RAW) += $(shell $(PKG_CONFIG) --libs libraw) - - MODULES = $(SRCS:.c=.o) - MODULES := $(MODULES:.cpp=.o) -@@ -64,13 +81,15 @@ - $(AR) r $@ $(MODULES) - - $(SHAREDLIB): $(MODULES) -- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) -+ $(CXX) $(CXXFLAGS) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES-yes) - - install: - install -d $(INCDIR) $(INSTALLDIR) -- install -m 644 -o root -g root $(HEADER) $(INCDIR) -- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) -- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) -+ install -m 644 $(HEADER) $(INCDIR) -+ifneq ($(STATICLIB),) -+ install -m 644 $(STATICLIB) $(INSTALLDIR) -+endif -+ install -m 755 $(SHAREDLIB) $(INSTALLDIR) - ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) - ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) - # ldconfig ---- a/Source/FreeImage/J2KHelper.cpp -+++ b/Source/FreeImage/J2KHelper.cpp -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include <openjpeg.h> - - /** - Divide an integer by a power of 2 and round upwards ---- a/Source/FreeImage/PluginEXR.cpp -+++ b/Source/FreeImage/PluginEXR.cpp -@@ -22,16 +22,16 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../OpenEXR/IlmImf/ImfIO.h" --#include "../OpenEXR/Iex/Iex.h" --#include "../OpenEXR/IlmImf/ImfOutputFile.h" --#include "../OpenEXR/IlmImf/ImfInputFile.h" --#include "../OpenEXR/IlmImf/ImfRgbaFile.h" --#include "../OpenEXR/IlmImf/ImfChannelList.h" --#include "../OpenEXR/IlmImf/ImfRgba.h" --#include "../OpenEXR/IlmImf/ImfArray.h" --#include "../OpenEXR/IlmImf/ImfPreviewImage.h" --#include "../OpenEXR/Half/half.h" -+#include <ImfIO.h> -+#include <Iex.h> -+#include <ImfOutputFile.h> -+#include <ImfInputFile.h> -+#include <ImfRgbaFile.h> -+#include <ImfChannelList.h> -+#include <ImfRgba.h> -+#include <ImfArray.h> -+#include <ImfPreviewImage.h> -+#include <half.h> - - - // ========================================================== ---- a/Source/FreeImage/PluginJ2K.cpp -+++ b/Source/FreeImage/PluginJ2K.cpp -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include <openjpeg.h> - - // ========================================================== - // Plugin Interface ---- a/Source/FreeImage/PluginJP2.cpp -+++ b/Source/FreeImage/PluginJP2.cpp -@@ -21,7 +21,7 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibOpenJPEG/openjpeg.h" -+#include <openjpeg.h> - - // ========================================================== - // Plugin Interface ---- a/Source/FreeImage/PluginPNG.cpp -+++ b/Source/FreeImage/PluginPNG.cpp -@@ -37,8 +37,8 @@ - - // ---------------------------------------------------------- - --#include "../ZLib/zlib.h" --#include "../LibPNG/png.h" -+#include <zlib.h> -+#include <png.h> - - // ---------------------------------------------------------- - ---- a/Source/transupp.c -+++ b/Source/transupp.c -@@ -15,8 +15,7 @@ - /* Although this file really shouldn't have access to the library internals, - * it's helpful to let it call jround_up() and jcopy_block_row(). - */ --#define JPEG_INTERNALS -- -+#include <jerror.h> - #include "jinclude.h" - #include "jpeglib.h" - #include "transupp.h" /* My own external interface */ ---- a/Source/FreeImage/ZLibInterface.cpp -+++ b/Source/FreeImage/ZLibInterface.cpp -@@ -19,10 +19,10 @@ - // Use at your own risk! - // ========================================================== - --#include "../ZLib/zlib.h" -+#include <zlib.h> - #include "FreeImage.h" - #include "Utilities.h" --#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ -+#define OS_CODE 0x03 - - /** - Compresses a source buffer into a target buffer, using the ZLib library. ---- a/Source/FreeImage/PluginG3.cpp -+++ b/Source/FreeImage/PluginG3.cpp -@@ -20,7 +20,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibTIFF4/tiffiop.h" -+#include "tiffiop.h" - - #include "FreeImage.h" - #include "Utilities.h" ---- a/Source/FreeImage/PluginJPEG.cpp -+++ b/Source/FreeImage/PluginJPEG.cpp -@@ -35,11 +35,15 @@ - #undef FAR - #include <setjmp.h> - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" -+#include <string.h> -+#include <stdio.h> -+#include <jconfig.h> -+#include <jpeglib.h> -+#include <jerror.h> - } - -+#define SIZEOF(object) ((size_t) sizeof(object)) -+ - #include "FreeImage.h" - #include "Utilities.h" - ---- a/Source/FreeImageToolkit/JPEGTransform.cpp -+++ b/Source/FreeImageToolkit/JPEGTransform.cpp -@@ -25,10 +25,11 @@ - #undef FAR - #include <setjmp.h> - --#include "../LibJPEG/jinclude.h" --#include "../LibJPEG/jpeglib.h" --#include "../LibJPEG/jerror.h" --#include "../LibJPEG/transupp.h" -+#include <string.h> -+#include <stdio.h> -+#include <jpeglib.h> -+#include <jerror.h> -+#include "transupp.h" - } - - #include "FreeImage.h" ---- a/Makefile.fip -+++ b/Makefile.fip -@@ -11,7 +11,24 @@ - # Converts cr/lf to just lf - DOS2UNIX = dos2unix - --LIBRARIES = -lstdc++ -+PKG_CONFIG ?= pkg-config -+ -+USE_EXR ?= yes -+USE_JPEG ?= yes -+USE_JPEG2K ?= yes -+USE_MNG ?= yes -+USE_PNG ?= yes -+USE_TIFF ?= yes -+USE_RAW ?= yes -+ -+LIBRARIES-yes = $(shell $(PKG_CONFIG) --libs zlib) -+LIBRARIES-$(USE_EXR) += $(shell $(PKG_CONFIG) --libs OpenEXR) -+LIBRARIES-$(USE_JPEG) += -ljpeg -+LIBRARIES-$(USE_JPEG2K) += $(shell $(PKG_CONFIG) --libs libopenjpeg) -+LIBRARIES-$(USE_MNG) += -lmng -+LIBRARIES-$(USE_PNG) += $(shell $(PKG_CONFIG) --libs libpng) -+LIBRARIES-$(USE_TIFF) += $(shell $(PKG_CONFIG) --libs libtiff-4 IlmBase) -+LIBRARIES-$(USE_RAW) += $(shell $(PKG_CONFIG) --libs libraw) - - MODULES = $(SRCS:.c=.o) - MODULES := $(MODULES:.cpp=.o) -@@ -65,14 +82,18 @@ - $(AR) r $@ $(MODULES) - - $(SHAREDLIB): $(MODULES) -- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) -+ $(CXX) $(CXXFLAGS) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES-yes) - - install: - install -d $(INCDIR) $(INSTALLDIR) -- install -m 644 -o root -g root $(HEADER) $(INCDIR) -- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) -- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) -- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) -+ install -m 644 $(HEADER) $(INCDIR) -+ install -m 644 $(HEADERFIP) $(INCDIR) -+ifneq ($(STATICLIB),) -+ install -m 644 $(STATICLIB) $(INSTALLDIR) -+endif -+ install -m 755 $(SHAREDLIB) $(INSTALLDIR) -+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) -+ ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) - - clean: - rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ---- a/Makefile.srcs -+++ b/Makefile.srcs -@@ -1,6 +1,14 @@ -+USE_EXR ?= yes -+USE_JPEG ?= yes -+USE_JPEG2K ?= yes -+USE_MNG ?= yes -+USE_PNG ?= yes -+USE_TIFF ?= yes -+USE_RAW ?= yes -+ - VER_MAJOR = 3 - VER_MINOR = 15.4 --SRCS = \ -+SRCS-yes = \ - Source/FreeImage/BitmapAccess.cpp \ - Source/FreeImage/ColorLookup.cpp \ - Source/FreeImage/FreeImage.cpp \ -@@ -17,36 +25,74 @@ SRCS = \ - Source/FreeImage/GetType.cpp \ - Source/FreeImage/MemoryIO.cpp \ - Source/FreeImage/PixelAccess.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/J2KHelper.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/MNGHelper.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/Plugin.cpp \ - Source/FreeImage/PluginBMP.cpp \ - Source/FreeImage/PluginCUT.cpp \ - Source/FreeImage/PluginDDS.cpp \ -+ -+SRCS-$(USE_EXR) += \ - Source/FreeImage/PluginEXR.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/FreeImage/PluginG3.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginGIF.cpp \ - Source/FreeImage/PluginHDR.cpp \ - Source/FreeImage/PluginICO.cpp \ - Source/FreeImage/PluginIFF.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/PluginJ2K.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/PluginJNG.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/PluginJP2.cpp \ -+ -+SRCS-$(USE_JPEG) += \ - Source/FreeImage/PluginJPEG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginKOALA.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/PluginMNG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginPCD.cpp \ - Source/FreeImage/PluginPCX.cpp \ - Source/FreeImage/PluginPFM.cpp \ - Source/FreeImage/PluginPICT.cpp \ -+ -+SRCS-$(USE_PNG) += \ - Source/FreeImage/PluginPNG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginPNM.cpp \ - Source/FreeImage/PluginPSD.cpp \ - Source/FreeImage/PluginRAS.cpp \ -+ -+SRCS-$(USE_RAW) += \ - Source/FreeImage/PluginRAW.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginSGI.cpp \ - Source/FreeImage/PluginTARGA.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/FreeImage/PluginTIFF.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginWBMP.cpp \ - Source/FreeImage/PluginXBM.cpp \ - Source/FreeImage/PluginXPM.cpp \ -@@ -83,7 +129,11 @@ SRCS = \ - Source/Metadata/IPTC.cpp \ - Source/Metadata/TagConversion.cpp \ - Source/Metadata/TagLib.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/Metadata/XTIFF.cpp \ -+ -+SRCS-yes += \ - Source/FreeImageToolkit/Background.cpp \ - Source/FreeImageToolkit/BSplineRotate.cpp \ - Source/FreeImageToolkit/Channels.cpp \ -@@ -92,10 +142,18 @@ SRCS = \ - Source/FreeImageToolkit/CopyPaste.cpp \ - Source/FreeImageToolkit/Display.cpp \ - Source/FreeImageToolkit/Flip.cpp \ -+ -+SRCS-$(USE_JPEG) += \ - Source/FreeImageToolkit/JPEGTransform.cpp \ -+ -+SRCS-yes += \ - Source/FreeImageToolkit/MultigridPoissonSolver.cpp \ - Source/FreeImageToolkit/Rescale.cpp \ - Source/FreeImageToolkit/Resize.cpp \ -+ -+SRCS-$(USE_JPEG) += \ -+ Source/transupp.c -+SRCS = $(SRCS-yes) - INCLS = \ - Examples/OpenGL/TextureManager/TextureManager.h \ - Examples/Plugin/PluginCradle.h \ -@@ -116,7 +174,17 @@ - Wrapper/FreeImagePlus/test/fipTest.h \ - TestAPI/TestSuite.h - --INCLUDE = -I. \ -+INCLUDE-yes = -I. \ - -ISource \ - -ISource/Metadata \ - -ISource/FreeImageToolkit \ -+ -+INCLUDE-yes += $(shell $(PKG_CONFIG) --cflags-only-I zlib) -+INCLUDE-$(USE_EXR) += -DUSE_EXR $(shell $(PKG_CONFIG) --cflags-only-I OpenEXR) -+INCLUDE-$(USE_JPEG) += -DUSE_JPEG -+INCLUDE-$(USE_JPEG2K) += -DUSE_JPEG2K $(shell $(PKG_CONFIG) --cflags-only-I libopenjpeg) -+INCLUDE-$(USE_MNG) += -DUSE_MNG -+INCLUDE-$(USE_PNG) += -DUSE_PNG $(shell $(PKG_CONFIG) --cflags-only-I libpng) -+INCLUDE-$(USE_TIFF) += -DUSE_TIFF $(shell $(PKG_CONFIG) --cflags-only-I libtiff-4 IlmBase) -+INCLUDE-$(USE_RAW) += -DUSE_RAW $(shell $(PKG_CONFIG) --cflags-only-I libraw) -+INCLUDE = $(INCLUDE-yes) ---- a/fipMakefile.srcs -+++ b/fipMakefile.srcs -@@ -1,6 +1,14 @@ -+USE_EXR ?= yes -+USE_JPEG ?= yes -+USE_JPEG2K ?= yes -+USE_MNG ?= yes -+USE_PNG ?= yes -+USE_TIFF ?= yes -+USE_RAW ?= yes -+ - VER_MAJOR = 3 - VER_MINOR = 15.4 --SRCS = \ -+SRCS-yes = \ - Source/FreeImage/BitmapAccess.cpp \ - Source/FreeImage/ColorLookup.cpp \ - Source/FreeImage/FreeImage.cpp \ -@@ -9,36 +17,74 @@ - Source/FreeImage/GetType.cpp \ - Source/FreeImage/MemoryIO.cpp \ - Source/FreeImage/PixelAccess.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/J2KHelper.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/MNGHelper.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/Plugin.cpp \ - Source/FreeImage/PluginBMP.cpp \ - Source/FreeImage/PluginCUT.cpp \ - Source/FreeImage/PluginDDS.cpp \ -+ -+SRCS-$(USE_EXR) += \ - Source/FreeImage/PluginEXR.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/FreeImage/PluginG3.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginGIF.cpp \ - Source/FreeImage/PluginHDR.cpp \ - Source/FreeImage/PluginICO.cpp \ - Source/FreeImage/PluginIFF.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/PluginJ2K.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/PluginJNG.cpp \ -+ -+SRCS-$(USE_JPEG2K) += \ - Source/FreeImage/PluginJP2.cpp \ -+ -+SRCS-$(USE_JPEG) += \ - Source/FreeImage/PluginJPEG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginKOALA.cpp \ -+ -+SRCS-$(USE_MNG) += \ - Source/FreeImage/PluginMNG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginPCD.cpp \ - Source/FreeImage/PluginPCX.cpp \ - Source/FreeImage/PluginPFM.cpp \ - Source/FreeImage/PluginPICT.cpp \ -+ -+SRCS-$(USE_PNG) += \ - Source/FreeImage/PluginPNG.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginPNM.cpp \ - Source/FreeImage/PluginPSD.cpp \ - Source/FreeImage/PluginRAS.cpp \ -+ -+SRCS-$(USE_RAW) += \ - Source/FreeImage/PluginRAW.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginSGI.cpp \ - Source/FreeImage/PluginTARGA.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/FreeImage/PluginTIFF.cpp \ -+ -+SRCS-yes += \ - Source/FreeImage/PluginWBMP.cpp \ - Source/FreeImage/PluginXBM.cpp \ - Source/FreeImage/PluginXPM.cpp \ -@@ -75,7 +121,11 @@ - Source/Metadata/IPTC.cpp \ - Source/Metadata/TagConversion.cpp \ - Source/Metadata/TagLib.cpp \ -+ -+SRCS-$(USE_TIFF) += \ - Source/Metadata/XTIFF.cpp \ -+ -+SRCS-yes += \ - Source/FreeImageToolkit/Background.cpp \ - Source/FreeImageToolkit/BSplineRotate.cpp \ - Source/FreeImageToolkit/Channels.cpp \ -@@ -84,7 +134,11 @@ - Source/FreeImageToolkit/CopyPaste.cpp \ - Source/FreeImageToolkit/Display.cpp \ - Source/FreeImageToolkit/Flip.cpp \ -+ -+SRCS-$(USE_JPEG) += \ - Source/FreeImageToolkit/JPEGTransform.cpp \ -+ -+SRCS-yes += \ - Source/FreeImageToolkit/MultigridPoissonSolver.cpp \ - Source/FreeImageToolkit/Rescale.cpp \ - Source/FreeImageToolkit/Resize.cpp \ -@@ -95,6 +149,11 @@ - Wrapper/FreeImagePlus/src/fipTag.cpp \ - Wrapper/FreeImagePlus/src/fipWinImage.cpp \ - Wrapper/FreeImagePlus/src/FreeImagePlus.cpp -+ -+SRCS-$(USE_JPEG) += \ -+ Source/transupp.c -+ -+SRCS = $(SRCS-yes) - INCLUDE = -I. \ - -ISource \ - -ISource/Metadata \ ---- a/Source/FreeImage/PluginRAW.cpp -+++ b/Source/FreeImage/PluginRAW.cpp -@@ -19,7 +19,7 @@ - // Use at your own risk! - // ========================================================== - --#include "../LibRawLite/libraw/libraw.h" -+#include <libraw.h> - - #include "FreeImage.h" - #include "Utilities.h" ---- a/Source/Metadata/XTIFF.cpp -+++ b/Source/Metadata/XTIFF.cpp -@@ -29,7 +29,7 @@ - #pragma warning (disable : 4786) // identifier was truncated to 'number' characters - #endif - --#include "../LibTIFF4/tiffiop.h" -+#include "tiffiop.h" - - #include "FreeImage.h" - #include "Utilities.h" ---- a/Source/FreeImage/PluginTIFF.cpp -+++ b/Source/FreeImage/PluginTIFF.cpp -@@ -37,9 +37,9 @@ - - #include "FreeImage.h" - #include "Utilities.h" --#include "../LibTIFF4/tiffiop.h" -+#include "tiffiop.h" - #include "../Metadata/FreeImageTag.h" --#include "../OpenEXR/Half/half.h" -+#include <half.h> - - #include "FreeImageIO.h" - #include "PSDParser.h" ---- a/Source/tiffiop.h -+++ b/Source/tiffiop.h -@@ -30,7 +30,9 @@ - * ``Library-private'' definitions. - */ - --#include "tif_config.h" -+#include <tiffconf.h> -+#define HAVE_SEARCH_H -+#define HAVE_FCNTL_H - - #ifdef HAVE_FCNTL_H - # include <fcntl.h> ---- a/Source/FreeImage/Plugin.cpp -+++ b/Source/FreeImage/Plugin.cpp -@@ -223,23 +223,33 @@ - */ - s_plugins->AddNode(InitBMP); - s_plugins->AddNode(InitICO); -+#ifdef USE_JPEG - s_plugins->AddNode(InitJPEG); -+#endif -+#ifdef USE_MNG - s_plugins->AddNode(InitJNG); -+#endif - s_plugins->AddNode(InitKOALA); - s_plugins->AddNode(InitIFF); -+#ifdef USE_MNG - s_plugins->AddNode(InitMNG); -+#endif - s_plugins->AddNode(InitPNM, NULL, "PBM", "Portable Bitmap (ASCII)", "pbm", "^P1"); - s_plugins->AddNode(InitPNM, NULL, "PBMRAW", "Portable Bitmap (RAW)", "pbm", "^P4"); - s_plugins->AddNode(InitPCD); - s_plugins->AddNode(InitPCX); - s_plugins->AddNode(InitPNM, NULL, "PGM", "Portable Greymap (ASCII)", "pgm", "^P2"); - s_plugins->AddNode(InitPNM, NULL, "PGMRAW", "Portable Greymap (RAW)", "pgm", "^P5"); -+#ifdef USE_PNG - s_plugins->AddNode(InitPNG); -+#endif - s_plugins->AddNode(InitPNM, NULL, "PPM", "Portable Pixelmap (ASCII)", "ppm", "^P3"); - s_plugins->AddNode(InitPNM, NULL, "PPMRAW", "Portable Pixelmap (RAW)", "ppm", "^P6"); - s_plugins->AddNode(InitRAS); - s_plugins->AddNode(InitTARGA); -+#ifdef USE_TIFF - s_plugins->AddNode(InitTIFF); -+#endif - s_plugins->AddNode(InitWBMP); - s_plugins->AddNode(InitPSD); - s_plugins->AddNode(InitCUT); -@@ -248,14 +258,22 @@ - s_plugins->AddNode(InitDDS); - s_plugins->AddNode(InitGIF); - s_plugins->AddNode(InitHDR); -+#ifdef USE_TIFF - s_plugins->AddNode(InitG3); -+#endif - s_plugins->AddNode(InitSGI); -+#ifdef USE_EXR - s_plugins->AddNode(InitEXR); -+#endif -+#ifdef USE_JPEG2K - s_plugins->AddNode(InitJ2K); - s_plugins->AddNode(InitJP2); -+#endif - s_plugins->AddNode(InitPFM); - s_plugins->AddNode(InitPICT); -+#ifdef USE_RAW - s_plugins->AddNode(InitRAW); -+#endif - - // external plugin initialization - diff --git a/media-libs/freeimage/freeimage-3.15.4-r1.ebuild b/media-libs/freeimage/freeimage-3.15.4-r1.ebuild deleted file mode 100644 index f79cd6ac5c1a..000000000000 --- a/media-libs/freeimage/freeimage-3.15.4-r1.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils toolchain-funcs - -MY_PN=FreeImage -MY_PV=${PV//.} -MY_P=${MY_PN}${MY_PV} - -DESCRIPTION="Image library supporting many formats" -HOMEPAGE="http://freeimage.sourceforge.net/" -SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip - mirror://sourceforge/${PN}/${MY_P}.pdf" - -LICENSE="|| ( GPL-2 FIPL-1.0 )" -SLOT="0" -KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux" -IUSE="jpeg jpeg2k mng openexr png raw static-libs tiff" - -# The tiff/ilmbase isn't a typo. The TIFF plugin cheats and -# uses code from it to handle 16bit<->float conversions. -RDEPEND=" - sys-libs/zlib - jpeg? ( virtual/jpeg:0 ) - jpeg2k? ( media-libs/openjpeg:0= ) - mng? ( media-libs/libmng:= ) - openexr? ( media-libs/openexr:= ) - png? ( media-libs/libpng:0= ) - raw? ( media-libs/libraw:= ) - tiff? ( - media-libs/ilmbase:= - media-libs/tiff:0 - )" -DEPEND="${RDEPEND} - virtual/pkgconfig - app-arch/unzip" - -S=${WORKDIR}/${MY_PN} - -DOCS=( "${DISTDIR}"/${MY_P}.pdf README.linux Whatsnew.txt ) -PATCHES=( - "${FILESDIR}"/${PN}-3.15.4-{unbundling,raw}.patch - "${FILESDIR}"/${PN}-3.15.4-CVE-2016-5684-1.patch - "${FILESDIR}"/${PN}-3.15.4-CVE-2016-5684-2.patch - "${FILESDIR}"/${PN}-3.15.4-CVE-2015-0852.patch - "${FILESDIR}"/${PN}-3.15.4-libjpeg9.patch -) - -src_prepare() { - pushd Source >/dev/null || die - if has_version ">=media-libs/libjpeg-turbo-1.2.1"; then - # Patch from Christian Heimes's fork (thanks) - # https://bitbucket.org/tiran/freeimageturbo - eapply "${FILESDIR}"/${PN}-3.15.4-libjpeg-turbo.patch - cp LibJPEG/{jpegcomp.h,jpegint.h} . || die - fi - cp LibJPEG/{transupp.c,transupp.h,jinclude.h} . || die - cp LibTIFF4/{tiffiop,tif_dir}.h . || die - rm -rf LibPNG LibMNG LibOpenJPEG ZLib OpenEXR LibRawLite LibTIFF4 LibJPEG || die - popd >/dev/null || die - - edos2unix Makefile.{gnu,fip,srcs} fipMakefile.srcs */*.h */*/*.cpp - sed -i \ - -e "s:/./:/:g" \ - -e "s: ./: :g" \ - -e 's: Source: \\\n\tSource:g' \ - -e 's: Wrapper: \\\n\tWrapper:g' \ - -e 's: Examples: \\\n\tExamples:g' \ - -e 's: TestAPI: \\\n\tTestAPI:g' \ - -e 's: -ISource: \\\n\t-ISource:g' \ - -e 's: -IWrapper: \\\n\t-IWrapper:g' \ - Makefile.srcs fipMakefile.srcs || die - sed -i \ - -e "/LibJPEG/d" \ - -e "/LibPNG/d" \ - -e "/LibTIFF/d" \ - -e "/Source\/ZLib/d" \ - -e "/LibOpenJPEG/d" \ - -e "/OpenEXR/d" \ - -e "/LibRawLite/d" \ - -e "/LibMNG/d" \ - Makefile.srcs fipMakefile.srcs || die - - default -} - -foreach_make() { - local m - for m in Makefile.{gnu,fip} ; do - emake -f ${m} \ - USE_EXR=$(usex openexr) \ - USE_JPEG=$(usex jpeg) \ - USE_JPEG2K=$(usex jpeg2k) \ - USE_MNG=$(usex mng) \ - USE_PNG=$(usex png) \ - USE_TIFF=$(usex tiff) \ - USE_RAW=$(usex raw) \ - $(usex static-libs '' STATICLIB=) \ - "$@" - done -} - -src_compile() { - tc-export AR PKG_CONFIG - foreach_make \ - CXX="$(tc-getCXX) -fPIC" \ - CC="$(tc-getCC) -fPIC" \ - ${MY_PN} -} - -src_install() { - foreach_make install DESTDIR="${ED}" INSTALLDIR="${ED%/}"/usr/$(get_libdir) - einstalldocs -} |