summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-01-10 05:04:39 +0000
committerMike Frysinger <vapier@gentoo.org>2013-01-10 05:04:39 +0000
commit27c025a92c5d5a97ba0d00da2ca985fb86d00d4c (patch)
treeeed76f9a8ca8bbdb873b2da25159dd74fe654be8 /media-libs/freeimage
parentI am sure this is unimpressive but I need it for metasploit and it works so, ... (diff)
downloadhistorical-27c025a92c5d5a97ba0d00da2ca985fb86d00d4c.tar.gz
historical-27c025a92c5d5a97ba0d00da2ca985fb86d00d4c.tar.bz2
historical-27c025a92c5d5a97ba0d00da2ca985fb86d00d4c.zip
Make all the graphics libs optional via USE flags.
Package-Manager: portage-2.2.0_alpha144/cvs/Linux x86_64 Manifest-Sign-Key: 0xFB7C4156
Diffstat (limited to 'media-libs/freeimage')
-rw-r--r--media-libs/freeimage/ChangeLog8
-rw-r--r--media-libs/freeimage/Manifest30
-rw-r--r--media-libs/freeimage/files/freeimage-3.15.3-r2-unbundling.patch639
-rw-r--r--media-libs/freeimage/freeimage-3.15.3-r2.ebuild99
4 files changed, 761 insertions, 15 deletions
diff --git a/media-libs/freeimage/ChangeLog b/media-libs/freeimage/ChangeLog
index 08f6a8320e96..082e45e0332f 100644
--- a/media-libs/freeimage/ChangeLog
+++ b/media-libs/freeimage/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for media-libs/freeimage
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/freeimage/ChangeLog,v 1.20 2013/01/09 23:38:23 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freeimage/ChangeLog,v 1.21 2013/01/10 05:04:34 vapier Exp $
+
+*freeimage-3.15.3-r2 (10 Jan 2013)
+
+ 10 Jan 2013; Mike Frysinger <vapier@gentoo.org>
+ +files/freeimage-3.15.3-r2-unbundling.patch, +freeimage-3.15.3-r2.ebuild:
+ Make all the graphics libs optional via USE flags.
*freeimage-3.15.3-r1 (09 Jan 2013)
diff --git a/media-libs/freeimage/Manifest b/media-libs/freeimage/Manifest
index a533cb0a84a4..e145e3555dda 100644
--- a/media-libs/freeimage/Manifest
+++ b/media-libs/freeimage/Manifest
@@ -2,27 +2,29 @@
Hash: SHA256
AUX freeimage-3.15.3-r1-unbundling.patch 8855 SHA256 e4fcf7c853ffa8ad59f09e09c53c9eb23eb2589ce16e6facb423ac6c74b6eb71 SHA512 d8b69f8add6016ee0204b4916608d17888f6945e8c67cc89b3e5846bbf945443c58a3b096697e0d3018c993fb6b54f59e95db71619fc481c4f1f54da5c10adb1 WHIRLPOOL f7f916fae38ba5630132b67f343fa9e5b95940864bd2bb12340c0be0c3eaefa1a1c6f279f5e03c09f0add70a9ec949bab2ef10e88fcb5bc132d97814e7faf04e
+AUX freeimage-3.15.3-r2-unbundling.patch 17182 SHA256 8fe72d50ca18b98041d70e8bd53dc681b6c59dbdf1ac142e01233009a5e6e452 SHA512 473d9ede61b1edeac78ff7b460949247f245cda67dc514c96f4bde957aa7f94cb4cad39dd7165719b58a956a1ec754204af5798b41ff0bd9379a06fd2b31a910 WHIRLPOOL f15e13ffefa477434970a3172b3c6a464f77ae390ccff9ae1e089721cf926a78ac17967b11c599d4d80ee31231b070f9e604803e956b4db8d565d46f985b015c
AUX freeimage-3.15.3-unbundling.patch 9053 SHA256 b98d92187eb34518a6219a45f0a71e0cc7909df7583b886069392264d4cc2ff4 SHA512 02f6bfd62bb54370d65660249bf7fa7e27dea0aeeabea782a47748baad119f6635ac5954449989aa487deda27739ad6dd8db42e287e3e1e70b211495b0643650 WHIRLPOOL ed2b4e7c0208a2d8e1177f3ff09e8d2a108ab57721846ec06ee68546ca591929f8df4130b327d66e384b63eef201ee955eb2fe7a5309a9b302494c5ce0c6878e
DIST FreeImage3153.pdf 1004540 SHA256 325767978f0208a6dd2d2f6cb1cc184cea6aec843d9948a051c41b6a16284546 SHA512 91775a5ec9227fc5a42431383157d82d2d2bd40b92e234518e4b347cfd20c873fb29ec84289d7bdee127b01c02b9eb5da24c386d6f78a7346684fccee158f939 WHIRLPOOL afdad90143a9ed3a62fa8dd0666355fdeaa3689e15873778b47927f6a6c170da88d7891f94f5889c94a5a54d608845c16a6c033a65afc9477d9deec9f12af5ee
DIST FreeImage3153.zip 4681769 SHA256 4618d59f2d9a20583b0f5fec99dcf832ccc3f317897b10592b85e7648375c044 SHA512 2cc38218cf1e8d403faa71d2337009ff6c0c60e1833eea2e19ddaf2fedba001198f4bff9805c4e815653d7bee79bac6a9132a7c9af69f59d5ee1cae531ad2069 WHIRLPOOL 89f8ecd1152d303b7c5613314ab7f2b68d66fb5c1cccf214e58a8c031a6d22ad842a5b37240ab38d9f6eb035f6d6a688afe6591da9c22898e882b1baecac0e50
EBUILD freeimage-3.15.3-r1.ebuild 2257 SHA256 a241dc0d1105090ded70983d9a66aa0264d7f15ccc9f8566404bb3e88d2de775 SHA512 7b84a6dff47f9e4cfafc8ee3d5d0a64e33718a128042a4f8ced46bb813dff74ae714e33efa73c34d442420a2b6dae9dce8563a3f57208eb1f7a2d7273dc7826e WHIRLPOOL 805536059bfaf31187d55aa92f15c45081ac361f50894f742d982133206567721bf38c35b8d070015c80ae8dcc62a1e92f311c1a4b38537410c4bef907665c9a
+EBUILD freeimage-3.15.3-r2.ebuild 2543 SHA256 9cb5d95f42133208f4ce3dd30fd0d06acd29a8b2a51fbd893521dd6b4e81bd69 SHA512 a4ae36c00d5baa59d90f9e1792148d1e3afb114aaee0f144ae4e52194af068da9e61c48d815da80ddb157262334fb162c43bdf4e2d1416c7cb5d2aeaf8cd71e2 WHIRLPOOL 817253453a9cf310271e5b2066113b1ab288abbda86faa35b9fac91ddb333420d44d8b43eb181da85516134a6a3faae2bf6164fc15a644167154b8d7691d41d2
EBUILD freeimage-3.15.3.ebuild 2549 SHA256 5d0449129a65c55f24a64376f206fb4297c85997fa00adbd1b7c2f7580a7f184 SHA512 ed445f56268bbfcdd861e75fabfe4bd48190f6a86be9fd54535d5466d836ba71333396e2c63185a3b1a3728a997550a7a8dc677608483420062940e28d5e7580 WHIRLPOOL 98436ceb9940f877e4436f15a3bfdd670981d8b4149b66fcd6af6362e70c9a16408e72086613f481220ae7508c8aef7b86209be78066e154372d1e513b098083
-MISC ChangeLog 3043 SHA256 4ec4a85199569e55e8f980f35a47071c45efe61f15635b7e92830d77e414ddee SHA512 05f3922181435fd320b1fe58100f1c254def9f4f5805611be8433a959bd444ba662d3dd68c623137cc885da913ca32368d243ef349a6556d09b032050f7efcd5 WHIRLPOOL bd897a3b542625de1262e743ab9c8d7415ee606cb38d2ba41accb6c9ebd77588c538861ffa1cb1b7811363aa37145fa8538e8159ece43b31c673e8feac42331d
+MISC ChangeLog 3259 SHA256 2f83adb2ec9f4a9e2beddf0bc5aca5530d11c2ae1f9695d44d99c8fe2e505a26 SHA512 8f40ae1e74eae3e603aebcb838fbd7f3fecdecd20cda417a30c948dd8f3e7342e8c5147e18917fade16bbbef062bf74309ad3e7100e8ffad619e0a3a1e0b05d4 WHIRLPOOL b11236fd8a6ad63a266fe34ca38571aff129da462797354afdb6d814451ab80db416c4d6455679b196672c04835dae677a6a508749109bd7d11dc3d16af5ade9
MISC metadata.xml 158 SHA256 1423a4fdd4a79b1728a2056d9e300f7e1074253095d82726218d9e9b953888a3 SHA512 d954564236b67b6ab97846b73f74e715e8f1bec2dba6595e9a5046c2e8c3b93f4879c293f9d1d02d99a533bee56156dae3f31a485697128c51af14cdbfdada8a WHIRLPOOL d03e7293d09d794d61c095a423f945b3644355a247f270a73ca8d30b4dfe9c98244297536bfd1a4bd6c14794aa1152eca20fd83bfdf3e1e74d4f676152d35ada
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQIcBAEBCAAGBQJQ7gALAAoJELEHsLL7fEFWq3YP/1M0hpbVrdgUAmfsXGs4YAgK
-oisotd10+8OmEFhNjJI+23ZYmwuUxIX7ddTNefvFMxdjvst22lzcCGnS91Js/UZP
-Y9RdUTYroaAj2nbqI70Rlw8MqeBon/i/gO9ZjZ7syC/yimRYm6flNnDeSMvxbb9U
-v0EYDIPxxtbu9A3acOX+Mzas7WeJAoAObhRPedEeAqNgsARlYLIhw+Y5OTybEDN1
-mRM4/J1TvjrpnQ6hOmj5crDjuIJRWvY1WeFXcQPK/Omq10+WRZkLIbrA7rVfvp2o
-5dCuIynlmZRTPC4tw4c00BrJdPxbJ4LCcg9Ahx7Ak1C3ZmtMOMoAmAfeSHG1H4X8
-rGV7fYbLluGac1sS9Dn0tur7m7/1912OdV9oynmEVgaQnvDmrtyZy1Xb694VEYnT
-0pv+V/Mkj9jbnayIF43s4Djnsd9Yu7m919YYvcDUo/gjNftFk/FmMTHcMArSyTNl
-D9wrjeWTqFuM9xPdDgcz3nFvO3nVB2S2S0ufxzqFJ++Nay15SJ00ke5mjCQjHkOx
-lwPwY2x010g49DJc3CUFqoxpTusCU7TxJ4PXYFqnCdJQmHgXNQfst5dGOzI8gw3y
-CU8wtKphGmT6SM+0A1W2fpBjdl1knNcj/90qkKY2nQbSZkWsYodfJW5912pAQNoh
-yWjWZ+3RPZ4nFOAmXL8i
-=yHvF
+iQIcBAEBCAAGBQJQ7kx/AAoJELEHsLL7fEFW3QEP/Ais6z/6oUIHXf982/R06StT
+wakfkqkcimGxYCYfQQuoWWKp4Z5p89ARZSf7+lgFFMM5oTXCwNpFqYPhzPviDKq/
+/eEz/T0cSaw8RRBdEvFjf2qUxjpXe8Goc/22iF9yAIS6LYK6Ttc5PucljCZHvgJZ
+Zk5NTpP0qHV071oa3RuMtzqne2yKaJdafLdtd7FccgyHNtEdj+mk3LLz2J3kNdQc
+JoCzYD+ORa25dee8XZQcore5eWTfWmwkyFC6dCLehn3OqoT60bBDuD/41h9IMTLv
+v8ITDN10yzhnofalpy3h5w9yr8IGJsNDTSkfBo4i3MShleIxAV0XIZlPgvXUfibs
+HwgSAHbgNFrDVtxCh/2lXNbosLfGAm0f+ZR+hkpA4W1zsv6QSBYYfI6KrZI+n1yR
+rpse6IxTS8LBNPEvlfld/KuRLO2Y5D77oRkVuYSi0DuUm2SPXcdsi8YQnu/sxaTy
+LaNHmbUmvVK4ccSuizFsEjdnYqqx2Xoq4HcbnPgVxkouLjus95L8WZVSurc7uMZf
+V1MB2Uu4z4jvVa7Zi4XBWExyFetCZwXHKvcG/Q84CAJaqnNcxOWYV3cqldakCvnS
+2Lmnq/4Sk67B/e/zcJt2HL+6/TAmMPqNKfmmMy4Wrq93y8O2ICU356qL76v6JEGO
+/c1E9MmFVC/7sRtMXAfv
+=dP7E
-----END PGP SIGNATURE-----
diff --git a/media-libs/freeimage/files/freeimage-3.15.3-r2-unbundling.patch b/media-libs/freeimage/files/freeimage-3.15.3-r2-unbundling.patch
new file mode 100644
index 000000000000..f83d87f5ae51
--- /dev/null
+++ b/media-libs/freeimage/files/freeimage-3.15.3-r2-unbundling.patch
@@ -0,0 +1,639 @@
+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)
+
+--- Makefile.gnu
++++ 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
+--- Source/FreeImage/J2KHelper.cpp
++++ 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
+--- Source/FreeImage/PluginEXR.cpp
++++ 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>
+
+
+ // ==========================================================
+--- Source/FreeImage/PluginJ2K.cpp
++++ Source/FreeImage/PluginJ2K.cpp
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include <openjpeg.h>
+
+ // ==========================================================
+ // Plugin Interface
+--- Source/FreeImage/PluginJP2.cpp
++++ Source/FreeImage/PluginJP2.cpp
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include <openjpeg.h>
+
+ // ==========================================================
+ // Plugin Interface
+--- Source/FreeImage/PluginPNG.cpp
++++ Source/FreeImage/PluginPNG.cpp
+@@ -37,8 +37,8 @@
+
+ // ----------------------------------------------------------
+
+-#include "../ZLib/zlib.h"
+-#include "../LibPNG/png.h"
++#include <zlib.h>
++#include <png.h>
+
+ // ----------------------------------------------------------
+
+--- Source/transupp.c
++++ 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 */
+--- Source/FreeImage/ZLibInterface.cpp
++++ 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.
+--- Source/FreeImage/PluginG3.cpp
++++ 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"
+--- Source/FreeImage/PluginJPEG.cpp
++++ 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"
+
+--- Source/FreeImageToolkit/JPEGTransform.cpp
++++ 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"
+--- Makefile.fip
++++ 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)
+--- Makefile.srcs
++++ 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.3
+-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)
+--- fipMakefile.srcs
++++ 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.3
+-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 \
+--- Source/FreeImage/PluginRAW.cpp
++++ 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"
+--- Source/Metadata/XTIFF.cpp
++++ 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"
+--- Source/FreeImage/PluginTIFF.cpp
++++ 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"
+--- Source/tiffiop.h
++++ 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>
+--- Source/FreeImage/Plugin.cpp
++++ 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.3-r2.ebuild b/media-libs/freeimage/freeimage-3.15.3-r2.ebuild
new file mode 100644
index 000000000000..c4eabb375f67
--- /dev/null
+++ b/media-libs/freeimage/freeimage-3.15.3-r2.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freeimage/freeimage-3.15.3-r2.ebuild,v 1.1 2013/01/10 05:04:34 vapier Exp $
+
+EAPI="4"
+
+inherit toolchain-funcs eutils multilib
+
+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 ~x86"
+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 )
+ jpeg2k? ( media-libs/openjpeg )
+ mng? ( media-libs/libmng )
+ openexr? ( media-libs/openexr )
+ png? ( media-libs/libpng )
+ raw? ( media-libs/libraw )
+ tiff? (
+ media-libs/ilmbase
+ media-libs/tiff
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ app-arch/unzip"
+
+S=${WORKDIR}/${MY_PN}
+
+src_prepare() {
+ cd Source
+ 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
+ cd ..
+ 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
+ epatch "${FILESDIR}"/${PF}-unbundling.patch
+}
+
+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)
+ dodoc Whatsnew.txt "${DISTDIR}"/${MY_P}.pdf
+}