diff options
author | 2013-06-07 23:44:26 +0000 | |
---|---|---|
committer | 2013-06-07 23:44:26 +0000 | |
commit | e7b4783629cd679ae717ad12ac55344728eaf86f (patch) | |
tree | 721de9f5ad7b442419ef83e827cb780a2aeb1393 /media-libs | |
parent | Version bump (diff) | |
download | historical-e7b4783629cd679ae717ad12ac55344728eaf86f.tar.gz historical-e7b4783629cd679ae717ad12ac55344728eaf86f.tar.bz2 historical-e7b4783629cd679ae717ad12ac55344728eaf86f.zip |
Revbump adding upstream patch required for ghostscript 9.07, EAPI5, slot-operators, port to autotools-utils eclass.
Package-Manager: portage-2.2.0_alpha177/cvs/Linux x86_64
Manifest-Sign-Key: 0x5270BA51
Diffstat (limited to 'media-libs')
-rw-r--r-- | media-libs/lcms/ChangeLog | 9 | ||||
-rw-r--r-- | media-libs/lcms/Manifest | 24 | ||||
-rw-r--r-- | media-libs/lcms/files/lcms-2.4-threading-plugin.patch | 470 | ||||
-rw-r--r-- | media-libs/lcms/lcms-2.4-r1.ebuild | 47 |
4 files changed, 548 insertions, 2 deletions
diff --git a/media-libs/lcms/ChangeLog b/media-libs/lcms/ChangeLog index ca13313f59d7..8a3c2ed6c46b 100644 --- a/media-libs/lcms/ChangeLog +++ b/media-libs/lcms/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-libs/lcms # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-libs/lcms/ChangeLog,v 1.151 2013/05/05 21:00:10 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-libs/lcms/ChangeLog,v 1.152 2013/06/07 23:44:16 tgurr Exp $ + +*lcms-2.4-r1 (07 Jun 2013) + + 07 Jun 2013; Timo Gurr <tgurr@gentoo.org> +lcms-2.4-r1.ebuild, + +files/lcms-2.4-threading-plugin.patch: + Revbump adding upstream patch required for ghostscript 9.07, EAPI5, + slot-operators, port to autotools-utils eclass. *lcms-1.19-r1 (05 May 2013) diff --git a/media-libs/lcms/Manifest b/media-libs/lcms/Manifest index b07234258e37..d5048b8d4a17 100644 --- a/media-libs/lcms/Manifest +++ b/media-libs/lcms/Manifest @@ -1,13 +1,35 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + AUX lcms-1.19-disable_static_modules.patch 578 SHA256 bd56a283da65a7ab262d35c890a99e8b103a3a73e50b997e404c3c0ac3ae467e SHA512 fba391dd6d69122217cdcde985d2154dfc2fd9b9aed5a50a013248e024ee54fe07a98acf917fd0e889578616512a2bdf155f0cbe782795e406d96a90b10bbb33 WHIRLPOOL d40c77d18ab5249252e4cadd5b6e2e40c1e43c0f761758908f2afa06d29dce41d56de52d33fe043d7441180c40ca572571fb7c27b87c43406991e5f1e25ff22c AUX lcms-1.19-fix-python3.2.patch 1098 SHA256 aee8200bdb7106b5aaa0df92590de5c857319373e95c7617fb7541717ce3219a SHA512 6b8bda2f792ca5afe65e62c618613583763904f7a6994c6f60d38285b4b823ebf92fd449afedb2b57d61ddf7edc82f277dbe4bb7b8dc8e751ccbe1d0970c8277 WHIRLPOOL 842dcb6bd64505bc0f05ebf8a621514a643ae8bdd8ead4d4fa5e827e0dbc4f7b39a65863cbfb0d4bfe047f06da1b00ef7837b107de574b3b5e8f6150983e0c3f AUX lcms-1.19-fix-swig-destructor.patch 345 SHA256 ac8ade0b3e45fd934b88925256fe6e729bb4b6b38f3ad896dfef3dc11e8b52a7 SHA512 00d1b2dd2ed32d4848c726e6616a4cb9caccc9ad410c796d400bd8566938854100c0c94e8db6446ab00a3dfef610406b6eca1f7a288a37b7249f3f98e9653a91 WHIRLPOOL 4247ffa55abdec48e98926ee174101bf440d00e81cf7c3fe2940693de04697d692b2538ca5b5d3917a5f1ea8ba72f2d964bcc7b7b49bc484bd18e6e260332484 AUX lcms-1.19-implicit.patch 1308 SHA256 327eb96faafac582362f57800727896bd5c2206a7bb150f12ef7787e84f3ddd9 SHA512 120db0ea4c5a77563dffef55507a8e7fa172ee73ad3943b6ba55c4a01f4a0a2ae21794f4775d58f0d8ba6b5fbdc28c461622416981683063ff746db9a38c724b WHIRLPOOL df45ecfc6fe36db90c676e25f053b370af466648e36e752acfd9f5c0d5acc25a445bf0a8a476f0913ca5c7f0304940c3af35bf56c021fa34045cfdb1e52419bc +AUX lcms-2.4-threading-plugin.patch 21553 SHA256 b3aaa75951fb047aee56c81e8928ec5357826a45dc003131e0b3619f97df47ca SHA512 eeaef84af9a5576c8606dfbe07556f097a435b237d6287cc605a173873d0e469eaeca6f96c9bb75ed97ce1e63612ad1e876305c2296ab00df6e2bea59d2d4535 WHIRLPOOL b2e9642e1e134a2cec52327c4b95d0c2f0fc7126398a577d1d2595d291d4779ab3b51eabdbc6b4478da8a7c654547bd6088907276ddba8bd61e52d35d4ca45c7 DIST lcms-1.19.tar.gz 927752 SHA256 80ae32cb9f568af4dc7ee4d3c05a4c31fc513fc3e31730fed0ce7378237273a9 SHA512 85a55ad0673f0df2aaa80d18caa50314319f8da5ee4d84eed919059d0dad9861d684ef6353ce0ec6f9892a4603ce8e8e12f84d46858e23f52846b8aefd3cf449 WHIRLPOOL cb6bcb5497798ff2fa86ff433eae6afea38408306345156da6103aa8af6fc0d48fa1d730c5958c027ba06ea023236328bcb00be60f600d987d060625385c820b DIST lcms2-2.3.tar.gz 4461644 SHA256 3ea177bbde947be5b9256b817d1cf98ab9c67c558b35703c48f5dbf8e0afafe4 SHA512 a1aca550ce357b04379b3faa7c67b90a6c5fbbbc08b5a47f8802b3588846322f5c3bca53e66212c303927721ac43cac28ef0522298ae1b4f734d84a48eebc9d0 WHIRLPOOL 8bfdc5bf638589d69908e75a95cd148e0b656dc92a4020aba56a9e9f17b417a78cb0e863a8c3beafd0830a206dd440b817f03c20d64b8fb3457d9e95f23061c9 DIST lcms2-2.4.tar.gz 4293291 SHA256 2a514d10eff26901505c191a15c2588c751eb7fb86577118f6c235aff0be37e8 SHA512 935105c396ca3ff00db6be18feb94883e40312010866e029d0bbdf340f7bc354d24d09697335304f8dfc93d41a4d10f7d186721553959091cee962610441bb6e WHIRLPOOL a99a2880176361d341a4a8b8bceb05e0f752462c4b9a57552d94520e425316fb844f3c9a91cccebaca3c426e7382dc4de45ccc12989959e4e3047030135a47fb EBUILD lcms-1.19-r1.ebuild 2602 SHA256 f69507c959b6d8ee23d7642c0e518e8027d8d603b0a09557e732bc469220a1a6 SHA512 b75655ff23b18e551942e02d599ca33e626260f7778db5c1611872c7652bbec6f33d7a058382765847c8b6d4adf2528466f31708483ab13a0d0cf8993d07017a WHIRLPOOL cd4a8dfccb3edcd0edb68caec8301bef713f75cf3cf08de1c439b8e29b31eac8bc85a428f0f4c2addfd792e5b6c30c4b9a94153cdfa0c0d0c9cafa01a903f82c EBUILD lcms-1.19.ebuild 2698 SHA256 bb3e6c6c612f3e8dad07ed3fba091d29e0b231113b43cbb0bda06f39569aee86 SHA512 f90b6ad8a151aa127458c0e2e9afa14185327760223c4781207e1fd9bf2603a10fce24fd4abe5f44026bb2379bddd6d708fca8fc510dbc3aaa79ca4123e6d400 WHIRLPOOL 8c3ca10a1587faf217b07aa2a153cbb37a42b6c716082ae9da96547b055b9a6795a5f0843adc6a15651ff5e2bfea36e3ec35b2da41c4cbb5f5e0407a656ee57c EBUILD lcms-2.3.ebuild 1186 SHA256 d32f2edbae7c9faf13e3fb385d577bb1eaa31c1b155984796a4b66687138bdcc SHA512 19b7b31dee13c098087d1cf8f3ad735c8c540926260605cfac36f8a3ca818eeeecc1f60b990cb60ec29b0fcc18d18e4386ec9ba4445453ee31d75ca5becbb58e WHIRLPOOL 6891b2cfb2965eab9bc8a83664333c28a10a9266c22f75e7a5e7d26e4238f1784e8cf41853cc284efffba61b87c26be16e058960f1f0023a70068518b8af84d9 +EBUILD lcms-2.4-r1.ebuild 1202 SHA256 db34a77f484a5f15449be00f8b9e1fcff1995f3cd244522bbb7ad76b81033674 SHA512 c9e8f90ab4705b8ccb36a4d3ec0bbb6461cc370b0bfd8a830ef61e1bc65580c9a2bc3a7f95555442efa9da16ebe7b1559ae0a07ead3c009f53291bed1e33796f WHIRLPOOL c966f61b7799f418f0e590dc027c150c4ba34f5eb60446259283ba5c46c39049c549ca552fad83911752d5ed63e7fa2cc3817bfde01c94142f4375ca5e0f9a82 EBUILD lcms-2.4.ebuild 1209 SHA256 9da63d7d51c6b19ea29869b505ffb7352ecac6eb344514caafb9475bb1c24e7e SHA512 ee71c12c1a51f0205072028c37c6c09eccb5b6a04c05e655fb01c307af8d78701ee55972182384d9d3514cd410206e3caf6655bc7125b93078135e880bdf826a WHIRLPOOL 57a2e77f2f8412cb98961ba7547754b4961dc92ce334d83ca9a73d4131670443f32bf83a59cc92bba25e95b21b4120f3aecf42c6ff6da3fc9af6919d7f075fe5 -MISC ChangeLog 18649 SHA256 b8e257abbf0e4e4ce6d0c0f003a477cb2baaae8c456a72765193bd6800025b03 SHA512 ffbf9360bbf6193421066bf86e40bfce258788f7a89884b400bca67bd887d24abc5d94247d11bc85e164e7a370f47205aad33ff5112fc827eb9cc47ced5bbc28 WHIRLPOOL 6b76cb18ea401bf4307aa4da9faa6db081f38d0469ce7a1209d78c830a885dbcd946874378cea579e67791855c23ef54b8f90cd720a30cb6a882134f439c957b +MISC ChangeLog 18901 SHA256 c46ce3c68f670e45373ebd448e0643aee44958ac1eaa6ec0e2d76cec5e98d6d8 SHA512 a53d16a240e43c6a7c8c4681cbdc16828f9746e6adc51783c217c3718942d571f5b63a558b1898b8ddb52b208d3395b4a93de0ec8872780ae40380d145fe3778 WHIRLPOOL 3dbd8e1a1d23ff76bf932b6a1724ef98c557204f4ae3e04a9f0c6e371231b902e571056db0c2938b5330707e22c0dda84caabb8be75175f08f21943a8d1e4a0c MISC metadata.xml 181 SHA256 52a52842b305fc897a5ece53a3a20b47cb5ebe36c0c88fb3f85a364cd6b940bc SHA512 c7ea81982732777e7327796168feab32e77deabba9941b8b81d3a910d906cfd3ecd5ed1a8cae255ff2472caac54fceb42c495b6e0fb7472b3679fee8dd5d56d4 WHIRLPOOL 796f93928011276727e5242b3a1398c8fc5be4c453cc24880553feb5681c28171b3c8a17da4881c28be02bdbe96e06050ba4cef9fd531ebbd22b900149651c6a +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.20 (GNU/Linux) + +iQIcBAEBCAAGBQJRsm+mAAoJEGm3FC1ScLpRbRsP/1147fKxn8h+PnEGoFzD37eh +s8kn+bBBb0ubIPRfaGal0KtnkRbzo/Up0BV3lawxBWbdRtCviyMyCPMcx22agpOE +fUlBx/8PkmnBHqKZdcY5TPZXFexBmFlK3gTXmoiokb720g7xPL6IyxFJvh5EP4Pt +wuhj0r+K2kwUN2fN+2A1jqtRzz0qUHUj6Hr+4043dt8dul8Sv6iqgR4xtAsOZMSK +ggDe0yWC5RRdqnAHH934VNQcDS96AAPYOY5TmzupNkXzpyD/acoIAeY7yvK7Yysl +nEbhOdHyr39nwAnZPIIudvFN2I96nbZbT3ZQu46JFzV5GpiDNvtclo0vIFw2Vrir +voi7tYEHruNFuzv+EQHPbIFICeXR4ch/8mGsSIjynIl0kbfaXPL/AReDQXLI4KkY +XhqUFjdkLdc5J8v0SZGXudl297/9wcr5wAhBgEhUwPg/yxTw9P1agTxDyQ+ARw1i +ZjTgA8L8UGB+7t/a15uq1RhxisZgkiAu4n0cLsHU83DJHHp8AS/OO8DE3h557tAY +oESUYTZFGjk/GT98caXG8Zlrqn+H4cf5i5msGBUgbTdXUBJk5gVTj5DR4gF6d7Ct +uvKaA6PGqqrEXRZfTAOwPYEKygWCNRGRfp+bqDEb50TR+ffyASbw7DgynH5NB0gH +pufmWPQOkGf0eS/7ImM1 +=qFzJ +-----END PGP SIGNATURE----- diff --git a/media-libs/lcms/files/lcms-2.4-threading-plugin.patch b/media-libs/lcms/files/lcms-2.4-threading-plugin.patch new file mode 100644 index 000000000000..8f995624d41e --- /dev/null +++ b/media-libs/lcms/files/lcms-2.4-threading-plugin.patch @@ -0,0 +1,470 @@ +diff -up lcms2-2.4/include/lcms2.h.threading-plugin lcms2-2.4/include/lcms2.h +--- lcms2-2.4/include/lcms2.h.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/include/lcms2.h 2013-04-25 15:45:02.853816514 +0100 +@@ -985,6 +985,7 @@ CMSAPI long int CMSEXPORT cmsfi + // Plug-In registering --------------------------------------------------------------------------------------------------- + + CMSAPI cmsBool CMSEXPORT cmsPlugin(void* Plugin); ++CMSAPI cmsBool CMSEXPORT cmsPluginTHR(cmsContext ContextID, void* Plugin); + CMSAPI void CMSEXPORT cmsUnregisterPlugins(void); + + // Error logging ---------------------------------------------------------------------------------------------------------- +diff -up lcms2-2.4/src/cmscnvrt.c.threading-plugin lcms2-2.4/src/cmscnvrt.c +--- lcms2-2.4/src/cmscnvrt.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmscnvrt.c 2013-04-25 15:45:02.854816518 +0100 +@@ -1028,7 +1028,7 @@ cmsUInt32Number CMSEXPORT cmsGetSupporte + } + + // The plug-in registration. User can add new intents or override default routines +-cmsBool _cmsRegisterRenderingIntentPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterRenderingIntentPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginRenderingIntent* Plugin = (cmsPluginRenderingIntent*) Data; + cmsIntentsList* fl; +@@ -1043,7 +1043,7 @@ cmsBool _cmsRegisterRenderingIntentPlug + fl = SearchIntent(Plugin ->Intent); + + if (fl == NULL) { +- fl = (cmsIntentsList*) _cmsPluginMalloc(sizeof(cmsIntentsList)); ++ fl = (cmsIntentsList*) _cmsPluginMalloc(id, sizeof(cmsIntentsList)); + if (fl == NULL) return FALSE; + } + +diff -up lcms2-2.4/src/cmsgamma.c.threading-plugin lcms2-2.4/src/cmsgamma.c +--- lcms2-2.4/src/cmsgamma.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmsgamma.c 2013-04-25 15:45:02.855816522 +0100 +@@ -70,7 +70,7 @@ static _cmsParametricCurvesCollection De + static _cmsParametricCurvesCollection* ParametricCurves = &DefaultCurves; + + // As a way to install new parametric curves +-cmsBool _cmsRegisterParametricCurvesPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterParametricCurvesPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginParametricCurves* Plugin = (cmsPluginParametricCurves*) Data; + _cmsParametricCurvesCollection* fl; +@@ -81,7 +81,7 @@ cmsBool _cmsRegisterParametricCurvesPlug + return TRUE; + } + +- fl = (_cmsParametricCurvesCollection*) _cmsPluginMalloc(sizeof(_cmsParametricCurvesCollection)); ++ fl = (_cmsParametricCurvesCollection*) _cmsPluginMalloc(id, sizeof(_cmsParametricCurvesCollection)); + if (fl == NULL) return FALSE; + + // Copy the parameters +diff -up lcms2-2.4/src/cmsio0.c.threading-plugin lcms2-2.4/src/cmsio0.c +--- lcms2-2.4/src/cmsio0.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmsio0.c 2013-04-25 15:46:28.537183522 +0100 +@@ -1057,6 +1057,7 @@ cmsBool SaveTags(_cmsICCPROFILE* Icc, _c + cmsTagDescriptor* TagDescriptor; + cmsTagTypeSignature TypeBase; + cmsTagTypeHandler* TypeHandler; ++ cmsTagTypeHandler LocalTypeHandler; + + + for (i=0; i < Icc -> TagCount; i++) { +@@ -1124,9 +1125,10 @@ cmsBool SaveTags(_cmsICCPROFILE* Icc, _c + if (!_cmsWriteTypeBase(io, TypeBase)) + return FALSE; + +- TypeHandler ->ContextID = Icc ->ContextID; +- TypeHandler ->ICCVersion = Icc ->Version; +- if (!TypeHandler ->WritePtr(TypeHandler, io, Data, TagDescriptor ->ElemCount)) { ++ LocalTypeHandler = *TypeHandler; ++ LocalTypeHandler.ContextID = Icc ->ContextID; ++ LocalTypeHandler.ICCVersion = Icc ->Version; ++ if (!LocalTypeHandler.WritePtr(&LocalTypeHandler, io, Data, TagDescriptor ->ElemCount)) { + + char String[5]; + +@@ -1302,10 +1304,11 @@ cmsBool CMSEXPORT cmsCloseProfile(cmsHP + cmsTagTypeHandler* TypeHandler = Icc ->TagTypeHandlers[i]; + + if (TypeHandler != NULL) { ++ cmsTagTypeHandler LocalTypeHandler = *TypeHandler; + +- TypeHandler ->ContextID = Icc ->ContextID; // As an additional parameters +- TypeHandler ->ICCVersion = Icc ->Version; +- TypeHandler ->FreePtr(TypeHandler, Icc -> TagPtrs[i]); ++ LocalTypeHandler.ContextID = Icc ->ContextID; // As an additional parameters ++ LocalTypeHandler.ICCVersion = Icc ->Version; ++ LocalTypeHandler.FreePtr(&LocalTypeHandler, Icc -> TagPtrs[i]); + } + else + _cmsFree(Icc ->ContextID, Icc ->TagPtrs[i]); +@@ -1349,6 +1352,7 @@ void* CMSEXPORT cmsReadTag(cmsHPROFILE h + _cmsICCPROFILE* Icc = (_cmsICCPROFILE*) hProfile; + cmsIOHANDLER* io = Icc ->IOhandler; + cmsTagTypeHandler* TypeHandler; ++ cmsTagTypeHandler LocalTypeHandler; + cmsTagDescriptor* TagDescriptor; + cmsTagTypeSignature BaseType; + cmsUInt32Number Offset, TagSize; +@@ -1389,14 +1393,15 @@ void* CMSEXPORT cmsReadTag(cmsHPROFILE h + // Get type handler + TypeHandler = _cmsGetTagTypeHandler(BaseType); + if (TypeHandler == NULL) return NULL; ++ LocalTypeHandler = *TypeHandler; + + + // Read the tag + Icc -> TagTypeHandlers[n] = TypeHandler; + +- TypeHandler ->ContextID = Icc ->ContextID; +- TypeHandler ->ICCVersion = Icc ->Version; +- Icc -> TagPtrs[n] = TypeHandler ->ReadPtr(TypeHandler, io, &ElemCount, TagSize); ++ LocalTypeHandler.ContextID = Icc ->ContextID; ++ LocalTypeHandler.ICCVersion = Icc ->Version; ++ Icc -> TagPtrs[n] = LocalTypeHandler.ReadPtr(&LocalTypeHandler, io, &ElemCount, TagSize); + + // The tag type is supported, but something wrong happend and we cannot read the tag. + // let know the user about this (although it is just a warning) +@@ -1449,6 +1454,7 @@ cmsBool CMSEXPORT cmsWriteTag(cmsHPROFIL + { + _cmsICCPROFILE* Icc = (_cmsICCPROFILE*) hProfile; + cmsTagTypeHandler* TypeHandler = NULL; ++ cmsTagTypeHandler LocalTypeHandler; + cmsTagDescriptor* TagDescriptor = NULL; + cmsTagTypeSignature Type; + int i; +@@ -1479,9 +1485,10 @@ cmsBool CMSEXPORT cmsWriteTag(cmsHPROFIL + + if (TypeHandler != NULL) { + +- TypeHandler ->ContextID = Icc ->ContextID; // As an additional parameter +- TypeHandler ->ICCVersion = Icc ->Version; +- TypeHandler->FreePtr(TypeHandler, Icc -> TagPtrs[i]); ++ LocalTypeHandler = *TypeHandler; ++ LocalTypeHandler.ContextID = Icc ->ContextID; // As an additional parameter ++ LocalTypeHandler.ICCVersion = Icc ->Version; ++ LocalTypeHandler.FreePtr(&LocalTypeHandler, Icc -> TagPtrs[i]); + } + } + } +@@ -1558,9 +1565,10 @@ cmsBool CMSEXPORT cmsWriteTag(cmsHPROFIL + Icc ->TagSizes[i] = 0; + Icc ->TagOffsets[i] = 0; + +- TypeHandler ->ContextID = Icc ->ContextID; +- TypeHandler ->ICCVersion = Icc ->Version; +- Icc ->TagPtrs[i] = TypeHandler ->DupPtr(TypeHandler, data, TagDescriptor ->ElemCount); ++ LocalTypeHandler = *TypeHandler; ++ LocalTypeHandler.ContextID = Icc ->ContextID; ++ LocalTypeHandler.ICCVersion = Icc ->Version; ++ Icc ->TagPtrs[i] = LocalTypeHandler.DupPtr(&LocalTypeHandler, data, TagDescriptor ->ElemCount); + + if (Icc ->TagPtrs[i] == NULL) { + +@@ -1587,6 +1595,7 @@ cmsInt32Number CMSEXPORT cmsReadRawTag(c + int i; + cmsIOHANDLER* MemIO; + cmsTagTypeHandler* TypeHandler = NULL; ++ cmsTagTypeHandler LocalTypeHandler; + cmsTagDescriptor* TagDescriptor = NULL; + cmsUInt32Number rc; + cmsUInt32Number Offset, TagSize; +@@ -1654,16 +1663,18 @@ cmsInt32Number CMSEXPORT cmsReadRawTag(c + return 0; + } + ++ // FIXME: No handling for TypeHandler == NULL here? + // Serialize +- TypeHandler ->ContextID = Icc ->ContextID; +- TypeHandler ->ICCVersion = Icc ->Version; ++ LocalTypeHandler = *TypeHandler; ++ LocalTypeHandler.ContextID = Icc ->ContextID; ++ LocalTypeHandler.ICCVersion = Icc ->Version; + + if (!_cmsWriteTypeBase(MemIO, TypeHandler ->Signature)) { + cmsCloseIOhandler(MemIO); + return 0; + } + +- if (!TypeHandler ->WritePtr(TypeHandler, MemIO, Object, TagDescriptor ->ElemCount)) { ++ if (!LocalTypeHandler.WritePtr(&LocalTypeHandler, MemIO, Object, TagDescriptor ->ElemCount)) { + cmsCloseIOhandler(MemIO); + return 0; + } +diff -up lcms2-2.4/src/cmsopt.c.threading-plugin lcms2-2.4/src/cmsopt.c +--- lcms2-2.4/src/cmsopt.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmsopt.c 2013-04-25 15:45:02.856816527 +0100 +@@ -1609,7 +1609,7 @@ static _cmsOptimizationCollection Defaul + static _cmsOptimizationCollection* OptimizationCollection = DefaultOptimization; + + // Register new ways to optimize +-cmsBool _cmsRegisterOptimizationPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterOptimizationPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginOptimization* Plugin = (cmsPluginOptimization*) Data; + _cmsOptimizationCollection* fl; +@@ -1623,7 +1623,7 @@ cmsBool _cmsRegisterOptimizationPlugin( + // Optimizer callback is required + if (Plugin ->OptimizePtr == NULL) return FALSE; + +- fl = (_cmsOptimizationCollection*) _cmsPluginMalloc(sizeof(_cmsOptimizationCollection)); ++ fl = (_cmsOptimizationCollection*) _cmsPluginMalloc(id, sizeof(_cmsOptimizationCollection)); + if (fl == NULL) return FALSE; + + // Copy the parameters +diff -up lcms2-2.4/src/cmspack.c.threading-plugin lcms2-2.4/src/cmspack.c +--- lcms2-2.4/src/cmspack.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmspack.c 2013-04-25 15:45:02.858816535 +0100 +@@ -3137,7 +3137,7 @@ static cmsFormattersFactoryList* Factory + + + // Formatters management +-cmsBool _cmsRegisterFormattersPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterFormattersPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginFormatters* Plugin = (cmsPluginFormatters*) Data; + cmsFormattersFactoryList* fl ; +@@ -3149,7 +3149,7 @@ cmsBool _cmsRegisterFormattersPlugin(cm + return TRUE; + } + +- fl = (cmsFormattersFactoryList*) _cmsPluginMalloc(sizeof(cmsFormattersFactoryList)); ++ fl = (cmsFormattersFactoryList*) _cmsPluginMalloc(id, sizeof(cmsFormattersFactoryList)); + if (fl == NULL) return FALSE; + + fl ->Factory = Plugin ->FormattersFactory; +diff -up lcms2-2.4/src/cmsplugin.c.threading-plugin lcms2-2.4/src/cmsplugin.c +--- lcms2-2.4/src/cmsplugin.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmsplugin.c 2013-04-25 15:45:02.859816539 +0100 +@@ -514,10 +514,10 @@ cmsBool CMSEXPORT _cmsIOPrintf(cmsIOHAND + static _cmsSubAllocator* PluginPool = NULL; + + // Specialized malloc for plug-ins, that is freed upon exit. +-void* _cmsPluginMalloc(cmsUInt32Number size) ++void* _cmsPluginMalloc(cmsContext id, cmsUInt32Number size) + { + if (PluginPool == NULL) +- PluginPool = _cmsCreateSubAlloc(0, 4*1024); ++ PluginPool = _cmsCreateSubAlloc(id, 4*1024); + + return _cmsSubAlloc(PluginPool, size); + } +@@ -526,6 +526,11 @@ void* _cmsPluginMalloc(cmsUInt32Number s + // Main plug-in dispatcher + cmsBool CMSEXPORT cmsPlugin(void* Plug_in) + { ++ return cmsPluginTHR(NULL, Plug_in); ++} ++ ++cmsBool CMSEXPORT cmsPluginTHR(cmsContext id, void* Plug_in) ++{ + cmsPluginBase* Plugin; + + for (Plugin = (cmsPluginBase*) Plug_in; +@@ -554,35 +559,35 @@ cmsBool CMSEXPORT cmsPlugin(void* Plug_i + break; + + case cmsPluginTagTypeSig: +- if (!_cmsRegisterTagTypePlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterTagTypePlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginTagSig: +- if (!_cmsRegisterTagPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterTagPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginFormattersSig: +- if (!_cmsRegisterFormattersPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterFormattersPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginRenderingIntentSig: +- if (!_cmsRegisterRenderingIntentPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterRenderingIntentPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginParametricCurveSig: +- if (!_cmsRegisterParametricCurvesPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterParametricCurvesPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginMultiProcessElementSig: +- if (!_cmsRegisterMultiProcessElementPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterMultiProcessElementPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginOptimizationSig: +- if (!_cmsRegisterOptimizationPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterOptimizationPlugin(id, Plugin)) return FALSE; + break; + + case cmsPluginTransformSig: +- if (!_cmsRegisterTransformPlugin(Plugin)) return FALSE; ++ if (!_cmsRegisterTransformPlugin(id, Plugin)) return FALSE; + break; + + default: +@@ -601,14 +606,14 @@ void CMSEXPORT cmsUnregisterPlugins(void + { + _cmsRegisterMemHandlerPlugin(NULL); + _cmsRegisterInterpPlugin(NULL); +- _cmsRegisterTagTypePlugin(NULL); +- _cmsRegisterTagPlugin(NULL); +- _cmsRegisterFormattersPlugin(NULL); +- _cmsRegisterRenderingIntentPlugin(NULL); +- _cmsRegisterParametricCurvesPlugin(NULL); +- _cmsRegisterMultiProcessElementPlugin(NULL); +- _cmsRegisterOptimizationPlugin(NULL); +- _cmsRegisterTransformPlugin(NULL); ++ _cmsRegisterTagTypePlugin(NULL, NULL); ++ _cmsRegisterTagPlugin(NULL, NULL); ++ _cmsRegisterFormattersPlugin(NULL, NULL); ++ _cmsRegisterRenderingIntentPlugin(NULL, NULL); ++ _cmsRegisterParametricCurvesPlugin(NULL, NULL); ++ _cmsRegisterMultiProcessElementPlugin(NULL, NULL); ++ _cmsRegisterOptimizationPlugin(NULL, NULL); ++ _cmsRegisterTransformPlugin(NULL, NULL); + + if (PluginPool != NULL) + _cmsSubAllocDestroy(PluginPool); +diff -up lcms2-2.4/src/cmssamp.c.threading-plugin lcms2-2.4/src/cmssamp.c +--- lcms2-2.4/src/cmssamp.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmssamp.c 2013-04-25 15:45:22.998902804 +0100 +@@ -38,13 +38,13 @@ + static + cmsHTRANSFORM CreateRoundtripXForm(cmsHPROFILE hProfile, cmsUInt32Number nIntent) + { +- cmsHPROFILE hLab = cmsCreateLab4Profile(NULL); ++ cmsContext ContextID = cmsGetProfileContextID(hProfile); ++ cmsHPROFILE hLab = cmsCreateLab4ProfileTHR(ContextID, NULL); + cmsHTRANSFORM xform; + cmsBool BPC[4] = { FALSE, FALSE, FALSE, FALSE }; + cmsFloat64Number States[4] = { 1.0, 1.0, 1.0, 1.0 }; + cmsHPROFILE hProfiles[4]; + cmsUInt32Number Intents[4]; +- cmsContext ContextID = cmsGetProfileContextID(hProfile); + + hProfiles[0] = hLab; hProfiles[1] = hProfile; hProfiles[2] = hProfile; hProfiles[3] = hLab; + Intents[0] = INTENT_RELATIVE_COLORIMETRIC; Intents[1] = nIntent; Intents[2] = INTENT_RELATIVE_COLORIMETRIC; Intents[3] = INTENT_RELATIVE_COLORIMETRIC; +diff -up lcms2-2.4/src/cmstypes.c.threading-plugin lcms2-2.4/src/cmstypes.c +--- lcms2-2.4/src/cmstypes.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmstypes.c 2013-04-25 15:45:02.861816548 +0100 +@@ -62,7 +62,7 @@ typedef struct _cmsTagTypeLinkedList_st + + // Register a new type handler. This routine is shared between normal types and MPE + static +-cmsBool RegisterTypesPlugin(cmsPluginBase* Data, _cmsTagTypeLinkedList* LinkedList, cmsUInt32Number DefaultListCount) ++cmsBool RegisterTypesPlugin(cmsContext id, cmsPluginBase* Data, _cmsTagTypeLinkedList* LinkedList, cmsUInt32Number DefaultListCount) + { + cmsPluginTagType* Plugin = (cmsPluginTagType*) Data; + _cmsTagTypeLinkedList *pt, *Anterior = NULL; +@@ -89,7 +89,7 @@ cmsBool RegisterTypesPlugin(cmsPluginBas + } + + // Registering happens in plug-in memory pool +- pt = (_cmsTagTypeLinkedList*) _cmsPluginMalloc(sizeof(_cmsTagTypeLinkedList)); ++ pt = (_cmsTagTypeLinkedList*) _cmsPluginMalloc(id, sizeof(_cmsTagTypeLinkedList)); + if (pt == NULL) return FALSE; + + pt ->Handler = Plugin ->Handler; +@@ -5248,14 +5248,14 @@ static _cmsTagTypeLinkedList SupportedTa + #define DEFAULT_TAG_TYPE_COUNT (sizeof(SupportedTagTypes) / sizeof(_cmsTagTypeLinkedList)) + + // Both kind of plug-ins share same structure +-cmsBool _cmsRegisterTagTypePlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterTagTypePlugin(cmsContext id, cmsPluginBase* Data) + { +- return RegisterTypesPlugin(Data, SupportedTagTypes, DEFAULT_TAG_TYPE_COUNT); ++ return RegisterTypesPlugin(id, Data, SupportedTagTypes, DEFAULT_TAG_TYPE_COUNT); + } + +-cmsBool _cmsRegisterMultiProcessElementPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterMultiProcessElementPlugin(cmsContext id, cmsPluginBase* Data) + { +- return RegisterTypesPlugin(Data, SupportedMPEtypes, DEFAULT_MPE_TYPE_COUNT); ++ return RegisterTypesPlugin(id, Data, SupportedMPEtypes, DEFAULT_MPE_TYPE_COUNT); + } + + +@@ -5377,7 +5377,7 @@ static _cmsTagLinkedList SupportedTags[] + + #define DEFAULT_TAG_COUNT (sizeof(SupportedTags) / sizeof(_cmsTagLinkedList)) + +-cmsBool _cmsRegisterTagPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterTagPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginTag* Plugin = (cmsPluginTag*) Data; + _cmsTagLinkedList *pt, *Anterior; +@@ -5401,7 +5401,7 @@ cmsBool _cmsRegisterTagPlugin(cmsPlugin + pt = pt ->Next; + } + +- pt = (_cmsTagLinkedList*) _cmsPluginMalloc(sizeof(_cmsTagLinkedList)); ++ pt = (_cmsTagLinkedList*) _cmsPluginMalloc(id, sizeof(_cmsTagLinkedList)); + if (pt == NULL) return FALSE; + + pt ->Signature = Plugin ->Signature; +diff -up lcms2-2.4/src/cmsxform.c.threading-plugin lcms2-2.4/src/cmsxform.c +--- lcms2-2.4/src/cmsxform.c.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/cmsxform.c 2013-04-25 15:45:02.862816552 +0100 +@@ -367,7 +367,7 @@ typedef struct _cmsTransformCollection_s + static _cmsTransformCollection* TransformCollection = NULL; + + // Register new ways to transform +-cmsBool _cmsRegisterTransformPlugin(cmsPluginBase* Data) ++cmsBool _cmsRegisterTransformPlugin(cmsContext id, cmsPluginBase* Data) + { + cmsPluginTransform* Plugin = (cmsPluginTransform*) Data; + _cmsTransformCollection* fl; +@@ -383,7 +383,7 @@ cmsBool _cmsRegisterTransformPlugin(cms + if (Plugin ->Factory == NULL) return FALSE; + + +- fl = (_cmsTransformCollection*) _cmsPluginMalloc(sizeof(_cmsTransformCollection)); ++ fl = (_cmsTransformCollection*) _cmsPluginMalloc(id, sizeof(_cmsTransformCollection)); + if (fl == NULL) return FALSE; + + // Copy the parameters +diff -up lcms2-2.4/src/lcms2_internal.h.threading-plugin lcms2-2.4/src/lcms2_internal.h +--- lcms2-2.4/src/lcms2_internal.h.threading-plugin 2012-09-10 17:01:51.000000000 +0100 ++++ lcms2-2.4/src/lcms2_internal.h 2013-04-25 15:45:02.862816552 +0100 +@@ -167,7 +167,7 @@ cmsINLINE cmsUInt16Number _cmsQuickSatur + // Plug-In registering --------------------------------------------------------------- + + // Specialized function for plug-in memory management. No pairing free() since whole pool is freed at once. +-void* _cmsPluginMalloc(cmsUInt32Number size); ++void* _cmsPluginMalloc(cmsContext ContextID, cmsUInt32Number size); + + // Memory management + cmsBool _cmsRegisterMemHandlerPlugin(cmsPluginBase* Plugin); +@@ -176,28 +176,28 @@ cmsBool _cmsRegisterMemHandlerPlugin(c + cmsBool _cmsRegisterInterpPlugin(cmsPluginBase* Plugin); + + // Parametric curves +-cmsBool _cmsRegisterParametricCurvesPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterParametricCurvesPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Formatters management +-cmsBool _cmsRegisterFormattersPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterFormattersPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Tag type management +-cmsBool _cmsRegisterTagTypePlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterTagTypePlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Tag management +-cmsBool _cmsRegisterTagPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterTagPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Intent management +-cmsBool _cmsRegisterRenderingIntentPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterRenderingIntentPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Multi Process elements +-cmsBool _cmsRegisterMultiProcessElementPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterMultiProcessElementPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Optimization +-cmsBool _cmsRegisterOptimizationPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterOptimizationPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // Transform +-cmsBool _cmsRegisterTransformPlugin(cmsPluginBase* Plugin); ++cmsBool _cmsRegisterTransformPlugin(cmsContext ContextID, cmsPluginBase* Plugin); + + // --------------------------------------------------------------------------------------------------------- + diff --git a/media-libs/lcms/lcms-2.4-r1.ebuild b/media-libs/lcms/lcms-2.4-r1.ebuild new file mode 100644 index 000000000000..5ff9dd25bf94 --- /dev/null +++ b/media-libs/lcms/lcms-2.4-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/lcms/lcms-2.4-r1.ebuild,v 1.1 2013/06/07 23:44:16 tgurr Exp $ + +EAPI=5 + +AUTOTOOLS_PRUNE_LIBTOOL_FILES="modules" + +inherit autotools-utils + +DESCRIPTION="A lightweight, speed optimized color management engine" +HOMEPAGE="http://www.littlecms.com/" +SRC_URI="mirror://sourceforge/${PN}/lcms2-${PV}.tar.gz" + +LICENSE="MIT" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="doc jpeg static-libs test tiff zlib" + +RDEPEND="jpeg? ( virtual/jpeg ) + tiff? ( media-libs/tiff:0= ) + zlib? ( sys-libs/zlib:= )" +DEPEND="${RDEPEND}" + +S=${WORKDIR}/lcms2-${PV} + +PATCHES=( + "${FILESDIR}"/${PN}-2.4-threading-plugin.patch +) + +src_configure() { + local myeconfargs=( + $(use_with jpeg) + $(use_with tiff) + $(use_with zlib) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + + if use doc; then + docinto pdf + dodoc doc/*.pdf + fi +} |