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
