lcms: upgraded package to upstream

Upgraded media-libs/lcms to version 2.9 on amd64, arm

lcms is a dependency of ghostscript so verify ghostscript
rendering still works.  Keep CPE value from metadata.xml.

BUG=chromium:919813
TEST=test_that ... platform_AddPrinter.generic

Change-Id: Ie66a0ac9f2b9773f0903054de7bd26f8995d6ccf
Reviewed-on: https://chromium-review.googlesource.com/1432781
Commit-Ready: Sean Kau <skau@chromium.org>
Tested-by: Sean Kau <skau@chromium.org>
Reviewed-by: David Valleau <valleau@chromium.org>
(cherry picked from commit 4cc84602ca201edcf3db5f4bd563afd70907a5c7)
Reviewed-on: https://chromium-review.googlesource.com/c/1453936
Reviewed-by: Sean Kau <skau@chromium.org>
Commit-Queue: Sean Kau <skau@chromium.org>
diff --git a/media-libs/lcms/Manifest b/media-libs/lcms/Manifest
index cdb3362..619b6ff 100644
--- a/media-libs/lcms/Manifest
+++ b/media-libs/lcms/Manifest
@@ -1 +1 @@
-DIST lcms2-2.6.tar.gz 4583389 SHA256 5172528839647c54c3da211837225e221be93e4733f5b5e9f57668f7107e14b1 SHA512 af2dd8829a5d8b280688bc247812829c885368951d385a23a1596cf8d0a7aed627c8faa35740073efc51a86ef5c900fc9bdb9dcdfad885fb8b1eae16953f9041 WHIRLPOOL 4fe1be53c48b0928bd474e05613c443eea49570a074d22b71863c485408523116927655b57d86bcb02aca85d9e06c0e26d9ee46bc7c4d746e91e951212de9e59
+DIST lcms2-2.9.tar.gz 10953949 BLAKE2B 6f22a0a8901562e8a84a82c077f31b0155bf81d2b5023211059fa157061e78ebe170bd4744f6d15ab76c96ff9dae521a7560e9665a230337d149e1f0c9018788 SHA512 d91e320a97ef9d64cce31585b7df7c85accb52a0c46a10ed0f45a0ba46cc2ad6687de5151e59ac62170ea878ab48595c1493125f4afb1872824afe1c3f3c459b
diff --git a/media-libs/lcms/files/lcms-2.6-cve-2014-0459.patch b/media-libs/lcms/files/lcms-2.6-cve-2014-0459.patch
deleted file mode 100644
index aa1b17b..0000000
--- a/media-libs/lcms/files/lcms-2.6-cve-2014-0459.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-patch is directly taken from upstream at
-  https://github.com/mm2/Little-CMS/commit/74ba39195a0cf87c43f46a2fabd9c2168692822d
-original version
-  http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/d6739b8326a4
-cleaned from parts of an accidental commit of unrelated changes.
-
---- a/src/cmscnvrt.c
-+++ b/src/cmscnvrt.c
-@@ -1045,7 +1045,7 @@
-         if (TheIntents[i] == INTENT_PERCEPTUAL || TheIntents[i] == INTENT_SATURATION) {
- 
-             // Force BPC for V4 profiles in perceptual and saturation
--            if (cmsGetProfileVersion(hProfiles[i]) >= 4.0)
-+            if (cmsGetEncodedICCversion(hProfiles[i]) >= 0x4000000)
-                 BPC[i] = TRUE;
-         }
-     }
---- a/src/cmsintrp.c
-+++ b/src/cmsintrp.c
-@@ -929,7 +929,7 @@
- 
-                             Rest = c1 * rx + c2 * ry + c3 * rz;
- 
--                            Tmp1[OutChan] = (cmsUInt16Number) c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest));
-+                            Tmp1[OutChan] = (cmsUInt16Number) ( c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest)));
-     }
- 
- 
-@@ -993,7 +993,7 @@
- 
-                             Rest = c1 * rx + c2 * ry + c3 * rz;
- 
--                            Tmp2[OutChan] = (cmsUInt16Number) c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest));
-+                            Tmp2[OutChan] = (cmsUInt16Number) (c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest)));
-     }
- 
- 
---- a/src/cmsio0.c
-+++ b/src/cmsio0.c
-@@ -623,6 +623,32 @@
- }
- 
- 
-+
-+// Enforces that the profile version is per. spec.
-+// Operates on the big endian bytes from the profile.
-+// Called before converting to platform endianness.
-+// Byte 0 is BCD major version, so max 9.
-+// Byte 1 is 2 BCD digits, one per nibble.
-+// Reserved bytes 2 & 3 must be 0.
-+static 
-+cmsUInt32Number _validatedVersion(cmsUInt32Number DWord)
-+{
-+    cmsUInt8Number* pByte = (cmsUInt8Number*) &DWord;
-+    cmsUInt8Number temp1;
-+    cmsUInt8Number temp2;
-+
-+    if (*pByte > 0x09) *pByte = (cmsUInt8Number) 0x09;
-+    temp1 = *(pByte+1) & 0xf0;
-+    temp2 = *(pByte+1) & 0x0f;
-+    if (temp1 > 0x90) temp1 = 0x90;
-+    if (temp2 > 0x09) temp2 = 0x09;
-+    *(pByte+1) = (cmsUInt8Number)(temp1 | temp2);
-+    *(pByte+2) = (cmsUInt8Number)0;
-+    *(pByte+3) = (cmsUInt8Number)0;
-+
-+    return DWord;
-+}
-+
- // Read profile header and validate it
- cmsBool _cmsReadHeader(_cmsICCPROFILE* Icc)
- {
-@@ -657,7 +683,7 @@
-     Icc -> creator         = _cmsAdjustEndianess32(Header.creator);
-     
-     _cmsAdjustEndianess64(&Icc -> attributes, &Header.attributes);
--    Icc -> Version         = _cmsAdjustEndianess32(Header.version);
-+    Icc -> Version         = _cmsAdjustEndianess32(_validatedVersion(Header.version));
- 
-     // Get size as reported in header
-     HeaderSize = _cmsAdjustEndianess32(Header.size);
---- a/src/cmsio1.c
-+++ b/src/cmsio1.c
-@@ -906,7 +906,7 @@
- {
-     if (!cmsWriteTag(hProfile, cmsSigProfileSequenceDescTag, seq)) return FALSE;
- 
--    if (cmsGetProfileVersion(hProfile) >= 4.0) {
-+    if (cmsGetEncodedICCversion(hProfile) >= 0x4000000) {
- 
-             if (!cmsWriteTag(hProfile, cmsSigProfileSequenceIdTag, seq)) return FALSE;
-     }
diff --git a/media-libs/lcms/files/lcms-2.9-BE-test.patch b/media-libs/lcms/files/lcms-2.9-BE-test.patch
new file mode 100644
index 0000000..577c77c
--- /dev/null
+++ b/media-libs/lcms/files/lcms-2.9-BE-test.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/638192
+
+From 8aca404f486429e2304bd6572c2a6fb89e43cf2d Mon Sep 17 00:00:00 2001
+From: Marti Maria <info@littlecms.com>
+Date: Mon, 20 Nov 2017 21:59:38 +0100
+Subject: [PATCH] fix for big endian MLU bug
+
+Thanks to Sergei Trofimovic for the fix
+---
+ AUTHORS        |  1 +
+ src/cmsnamed.c | 20 ++++++--------------
+ 2 files changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/src/cmsnamed.c b/src/cmsnamed.c
+index 95dc18b..773e4d2 100644
+--- a/src/cmsnamed.c
++++ b/src/cmsnamed.c
+@@ -183,27 +183,19 @@ cmsBool AddMLUBlock(cmsMLU* mlu, cmsUInt32Number size, const wchar_t *Block,
+ 
+ static
+ cmsUInt16Number strTo16(const char str[3])
+-{
++{   
+     const cmsUInt8Number* ptr8 = (const cmsUInt8Number*)str;
+-    cmsUInt16Number n = (cmsUInt16Number) (((cmsUInt16Number) ptr8[1] << 8) | ptr8[0]);
++    cmsUInt16Number n = (cmsUInt16Number)(((cmsUInt16Number)ptr8[0] << 8) | ptr8[1]);
+ 
+-    return _cmsAdjustEndianess16(n);
++    return n;
+ }
+ 
+ static
+ void strFrom16(char str[3], cmsUInt16Number n)
+ {
+-    // Assuming this would be aligned
+-    union {
+-
+-       cmsUInt16Number n;
+-       cmsUInt8Number str[2];
+-       
+-    } c;
+-
+-    c.n = _cmsAdjustEndianess16(n);  
+-
+-    str[0] = (char) c.str[0]; str[1] = (char) c.str[1]; str[2] = (char) 0;
++    str[0] = (char)(n >> 8);
++    str[1] = (char)n;
++    str[2] = (char)0;
+ 
+ }
+ 
+-- 
+2.15.0
+
diff --git a/media-libs/lcms/lcms-2.6-r1.ebuild b/media-libs/lcms/lcms-2.6-r1.ebuild
deleted file mode 100644
index 55d8211..0000000
--- a/media-libs/lcms/lcms-2.6-r1.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/lcms/lcms-2.6-r1.ebuild,v 1.10 2014/11/10 13:51:39 ago Exp $
-
-EAPI=5
-AUTOTOOLS_PRUNE_LIBTOOL_FILES="modules"
-inherit autotools-multilib
-
-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="*"
-IUSE="doc jpeg static-libs +threads test tiff zlib"
-
-RDEPEND="jpeg? ( >=virtual/jpeg-0-r2:0[${MULTILIB_USEDEP}] )
-	tiff? ( >=media-libs/tiff-4.0.3-r6:0=[${MULTILIB_USEDEP}] )
-	zlib? ( >=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] )
-	abi_x86_32? (
-		!<=app-emulation/emul-linux-x86-baselibs-20130224-r10
-		!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
-	)"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}/lcms2-${PV}
-
-PATCHES=( "${FILESDIR}"/lcms-2.6-cve-2014-0459.patch )
-
-src_configure() {
-	local myeconfargs=(
-		$(use_with jpeg)
-		$(use_with tiff)
-		$(use_with zlib)
-		$(use_with threads)
-	)
-	autotools-multilib_src_configure
-}
-
-src_install() {
-	autotools-multilib_src_install
-
-	if use doc; then
-		docinto pdf
-		dodoc doc/*.pdf
-	fi
-}
diff --git a/media-libs/lcms/lcms-2.9.ebuild b/media-libs/lcms/lcms-2.9.ebuild
new file mode 100644
index 0000000..6d32df0
--- /dev/null
+++ b/media-libs/lcms/lcms-2.9.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit libtool multilib-minimal
+
+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="*"
+IUSE="doc jpeg static-libs test +threads tiff"
+
+RDEPEND="
+	jpeg? ( >=virtual/jpeg-0-r2:0[${MULTILIB_USEDEP}] )
+	tiff? ( >=media-libs/tiff-4.0.3-r6:0=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/lcms2-${PV}"
+
+PATCHES=("${FILESDIR}"/${P}-BE-test.patch)
+
+src_prepare() {
+	default
+	elibtoolize  # for Prefix/Solaris
+}
+
+multilib_src_configure() {
+	local myeconfargs=(
+		$(use_with jpeg)
+		$(use_enable static-libs static)
+		$(use_with threads)
+		$(use_with tiff)
+		--without-zlib
+	)
+	ECONF_SOURCE="${S}" \
+	econf ${myeconfargs[@]}
+}
+
+multilib_src_install_all() {
+	find "${ED}" -name "*.la" -delete || die
+
+	if use doc; then
+		docinto pdf
+		dodoc doc/*.pdf
+	fi
+}
diff --git a/media-libs/lcms/metadata.xml b/media-libs/lcms/metadata.xml
index 84ec3bc..4b4a7a3 100644
--- a/media-libs/lcms/metadata.xml
+++ b/media-libs/lcms/metadata.xml
@@ -1,8 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<herd>printing</herd>
-<upstream>
-<remote-id type="cpe">cpe:/a:littlecms:little_cms_color_engine</remote-id>
-</upstream>
+	<maintainer type="project">
+		<email>printing@gentoo.org</email>
+		<name>Gentoo Printing Project</name>
+	</maintainer>
+	<upstream>
+		<remote-id type="sourceforge">lcms</remote-id>
+		<remote-id type="cpe">cpe:/a:littlecms:little_cms_color_engine</remote-id>
+	</upstream>
 </pkgmetadata>
diff --git a/metadata/md5-cache/media-libs/lcms-2.6-r1 b/metadata/md5-cache/media-libs/lcms-2.6-r1
deleted file mode 100644
index 9089793..0000000
--- a/metadata/md5-cache/media-libs/lcms-2.6-r1
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test
-DEPEND=jpeg? ( >=virtual/jpeg-0-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) tiff? ( >=media-libs/tiff-4.0.3-r6:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) zlib? ( >=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r10 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) >=app-portage/elt-patches-20170815
-DESCRIPTION=A lightweight, speed optimized color management engine
-EAPI=5
-HOMEPAGE=http://www.littlecms.com/
-IUSE=doc jpeg static-libs +threads test tiff zlib abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
-KEYWORDS=*
-LICENSE=MIT
-RDEPEND=jpeg? ( >=virtual/jpeg-0-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) tiff? ( >=media-libs/tiff-4.0.3-r6:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) zlib? ( >=sys-libs/zlib-1.2.8-r1:=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r10 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )
-SLOT=2
-SRC_URI=mirror://sourceforge/lcms/lcms2-2.6.tar.gz
-_eclasses_=autotools	d0e5375d47f4c809f406eb892e531513	autotools-multilib	037c4046d25f29e78dd44dccabd5d66b	autotools-utils	3727db64c7b960903d5033280f108080	eutils	06133990e861be0fe60c2b428fd025d9	libtool	f143db5a74ccd9ca28c1234deffede96	multibuild	40fe59465edacd730c644ec2bc197809	multilib	b2f01ad412baf81650c23fcf0975fa33	multilib-build	b42436dc1260f475af229754c165cb6b	multilib-minimal	8bddda43703ba94d8341f4e247f97566	toolchain-funcs	1e35303c63cd707f6c3422b4493d5607
-_md5_=36f46c1f5b4ddea63cb5e75cdc0ae8ef
diff --git a/metadata/md5-cache/media-libs/lcms-2.9 b/metadata/md5-cache/media-libs/lcms-2.9
new file mode 100644
index 0000000..3b2a49c
--- /dev/null
+++ b/metadata/md5-cache/media-libs/lcms-2.9
@@ -0,0 +1,13 @@
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=jpeg? ( >=virtual/jpeg-0-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) tiff? ( >=media-libs/tiff-4.0.3-r6:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) >=app-portage/elt-patches-20170815
+DESCRIPTION=A lightweight, speed optimized color management engine
+EAPI=6
+HOMEPAGE=http://www.littlecms.com/
+IUSE=doc jpeg static-libs test +threads tiff abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
+KEYWORDS=*
+LICENSE=MIT
+RDEPEND=jpeg? ( >=virtual/jpeg-0-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) tiff? ( >=media-libs/tiff-4.0.3-r6:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] )
+SLOT=2
+SRC_URI=mirror://sourceforge/lcms/lcms2-2.9.tar.gz
+_eclasses_=libtool	f143db5a74ccd9ca28c1234deffede96	multibuild	40fe59465edacd730c644ec2bc197809	multilib	b2f01ad412baf81650c23fcf0975fa33	multilib-build	b42436dc1260f475af229754c165cb6b	multilib-minimal	8bddda43703ba94d8341f4e247f97566	toolchain-funcs	1e35303c63cd707f6c3422b4493d5607
+_md5_=a21d84d3d825f858bf40f0a383d8fee9