summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Stakenvicius <axs@gentoo.org>2017-04-26 22:26:43 -0400
committerIan Stakenvicius <axs@gentoo.org>2017-04-26 23:15:20 -0400
commit0608e06d87b35052fb08d47652a3016c4756c435 (patch)
treefdd80fcb87755b6b20039105779b4c99361bc938 /media-gfx
parentmedia-sound/abcmidi: remove old (diff)
downloadgentoo-0608e06d87b35052fb08d47652a3016c4756c435.tar.gz
gentoo-0608e06d87b35052fb08d47652a3016c4756c435.tar.bz2
gentoo-0608e06d87b35052fb08d47652a3016c4756c435.zip
media-gfx/graphite2: patch and revbump for security bug 616034
Applied the two patches mozilla backported to fix MFSA-2017-11 to 1.3.8-r1, and 1.3.9-r1 as applicable. Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/graphite2/files/graphite2-1.3.8-rule-length-test-overflow-fix.patch22
-rw-r--r--media-gfx/graphite2/files/graphite2-1.3.9-increase-pDest-reservation.patch22
-rw-r--r--media-gfx/graphite2/graphite2-1.3.8-r1.ebuild121
-rw-r--r--media-gfx/graphite2/graphite2-1.3.9-r1.ebuild120
4 files changed, 285 insertions, 0 deletions
diff --git a/media-gfx/graphite2/files/graphite2-1.3.8-rule-length-test-overflow-fix.patch b/media-gfx/graphite2/files/graphite2-1.3.8-rule-length-test-overflow-fix.patch
new file mode 100644
index 000000000000..624442fbb163
--- /dev/null
+++ b/media-gfx/graphite2/files/graphite2-1.3.8-rule-length-test-overflow-fix.patch
@@ -0,0 +1,22 @@
+From 56157cf9845d13452068c297205f96b946126cc2 Mon Sep 17 00:00:00 2001
+From: Martin Hosken <martin_hosken@sil.org>
+Date: Mon, 4 Apr 2016 16:04:16 +0700
+Subject: [PATCH] Resolve rule length test overflow
+
+---
+ src/Pass.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Pass.cpp b/src/Pass.cpp
+index 7289406..1c9c73c 100644
+--- a/src/Pass.cpp
++++ b/src/Pass.cpp
+@@ -635,7 +635,7 @@ bool Pass::testPassConstraint(Machine & m) const
+ bool Pass::testConstraint(const Rule & r, Machine & m) const
+ {
+ const uint16 curr_context = m.slotMap().context();
+- if (unsigned(r.sort - r.preContext) > m.slotMap().size() - curr_context
++ if (unsigned(r.sort + curr_context - r.preContext) > m.slotMap().size()
+ || curr_context - r.preContext < 0) return false;
+
+ vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext;
diff --git a/media-gfx/graphite2/files/graphite2-1.3.9-increase-pDest-reservation.patch b/media-gfx/graphite2/files/graphite2-1.3.9-increase-pDest-reservation.patch
new file mode 100644
index 000000000000..fdd7e7ec4f03
--- /dev/null
+++ b/media-gfx/graphite2/files/graphite2-1.3.9-increase-pDest-reservation.patch
@@ -0,0 +1,22 @@
+From 1ce331d5548b98ed8b818532b2556d6f2c7a3b83 Mon Sep 17 00:00:00 2001
+From: Martin Hosken <martin_hosken@sil.org>
+Date: Thu, 9 Mar 2017 22:04:04 +0000
+Subject: [PATCH] Ensure features have enough space. Fix from Mozilla
+
+---
+ src/FeatureMap.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/FeatureMap.cpp b/src/FeatureMap.cpp
+index b8c8405..83bd5f6 100644
+--- a/src/FeatureMap.cpp
++++ b/src/FeatureMap.cpp
+@@ -275,7 +275,7 @@ bool FeatureRef::applyValToFeature(uint32 val, Features & pDest) const
+ else
+ if (pDest.m_pMap!=&m_pFace->theSill().theFeatureMap())
+ return false; //incompatible
+- pDest.reserve(m_index);
++ pDest.reserve(m_index+1);
+ pDest[m_index] &= ~m_mask;
+ pDest[m_index] |= (uint32(val) << m_bits);
+ return true;
diff --git a/media-gfx/graphite2/graphite2-1.3.8-r1.ebuild b/media-gfx/graphite2/graphite2-1.3.8-r1.ebuild
new file mode 100644
index 000000000000..d72cda422641
--- /dev/null
+++ b/media-gfx/graphite2/graphite2-1.3.8-r1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+GENTOO_DEPEND_ON_PERL="no"
+inherit eutils perl-module python-any-r1 cmake-multilib
+
+DESCRIPTION="Library providing rendering capabilities for complex non-Roman writing systems"
+HOMEPAGE="http://graphite.sil.org/"
+SRC_URI="mirror://sourceforge/silgraphite/${PN}/${P}.tgz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+IUSE="perl test"
+
+RDEPEND="
+ perl? ( dev-lang/perl:= )
+"
+DEPEND="${RDEPEND}
+ perl? (
+ dev-perl/Module-Build
+ dev-perl/Locale-Maketext-Lexicon
+ )
+ test? (
+ dev-libs/glib:2
+ media-libs/fontconfig
+ media-libs/silgraphite
+ $(python_gen_any_dep '
+ dev-python/fonttools[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ perl? ( virtual/perl-Test-Simple )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.3.5-includes-libs-perl.patch"
+ "${FILESDIR}/${PN}-1.3.8-rule-length-test-overflow-fix.patch"
+ "${FILESDIR}/${PN}-1.3.9-increase-pDest-reservation.patch"
+)
+
+pkg_setup() {
+ use perl && perl_set_version
+ use test && python-any-r1_pkg_setup
+}
+
+python_check_deps() {
+ has_version "dev-python/fonttools[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ # make tests optional
+ if ! use test; then
+ sed -i \
+ -e '/tests/d' \
+ CMakeLists.txt || die
+ fi
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ "-DVM_MACHINE_TYPE=direct"
+ # https://sourceforge.net/p/silgraphite/bugs/49/
+ $([[ ${CHOST} == powerpc*-apple* ]] && \
+ echo "-DGRAPHITE2_NSEGCACHE:BOOL=ON")
+ )
+
+ cmake-utils_src_configure
+
+ # fix perl linking
+ if multilib_is_native_abi && use perl; then
+ # we rely on the fact that cmake-utils_src_configure sets BUILD_DIR
+ sed -i \
+ -e "s:@BUILD_DIR@:\"${BUILD_DIR}/src\":" \
+ "${S}"/contrib/perl/Build.PL || die
+ fi
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+ if use perl; then
+ cd contrib/perl || die
+ perl-module_src_configure
+ perl-module_src_compile
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cmake-utils_src_test
+ else
+ einfo Cannot test since python is not multilib.
+ fi
+}
+
+src_test() {
+ cmake-multilib_src_test
+ if use perl; then
+ cd contrib/perl || die
+ # SRC_TEST=do
+ # Perl tests fail due to missing POD coverage...
+ perl-module_src_test
+ fi
+}
+
+src_install() {
+ cmake-multilib_src_install
+ if use perl; then
+ cd contrib/perl || die
+ perl-module_src_install
+ perl_delete_localpod
+ fi
+
+ prune_libtool_files --all
+}
diff --git a/media-gfx/graphite2/graphite2-1.3.9-r1.ebuild b/media-gfx/graphite2/graphite2-1.3.9-r1.ebuild
new file mode 100644
index 000000000000..731a6db50700
--- /dev/null
+++ b/media-gfx/graphite2/graphite2-1.3.9-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+GENTOO_DEPEND_ON_PERL="no"
+inherit eutils perl-module python-any-r1 cmake-multilib
+
+DESCRIPTION="Library providing rendering capabilities for complex non-Roman writing systems"
+HOMEPAGE="http://graphite.sil.org/"
+SRC_URI="mirror://sourceforge/silgraphite/${PN}/${P}.tgz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+IUSE="perl test"
+
+RDEPEND="
+ perl? ( dev-lang/perl:= )
+"
+DEPEND="${RDEPEND}
+ perl? (
+ dev-perl/Module-Build
+ dev-perl/Locale-Maketext-Lexicon
+ )
+ test? (
+ dev-libs/glib:2
+ media-libs/fontconfig
+ media-libs/silgraphite
+ $(python_gen_any_dep '
+ dev-python/fonttools[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ perl? ( virtual/perl-Test-Simple )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.3.5-includes-libs-perl.patch"
+ "${FILESDIR}/${PN}-1.3.9-increase-pDest-reservation.patch"
+)
+
+pkg_setup() {
+ use perl && perl_set_version
+ use test && python-any-r1_pkg_setup
+}
+
+python_check_deps() {
+ has_version "dev-python/fonttools[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+
+ # make tests optional
+ if ! use test; then
+ sed -i \
+ -e '/tests/d' \
+ CMakeLists.txt || die
+ fi
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ "-DVM_MACHINE_TYPE=direct"
+ # https://sourceforge.net/p/silgraphite/bugs/49/
+ $([[ ${CHOST} == powerpc*-apple* ]] && \
+ echo "-DGRAPHITE2_NSEGCACHE:BOOL=ON")
+ )
+
+ cmake-utils_src_configure
+
+ # fix perl linking
+ if multilib_is_native_abi && use perl; then
+ # we rely on the fact that cmake-utils_src_configure sets BUILD_DIR
+ sed -i \
+ -e "s:@BUILD_DIR@:\"${BUILD_DIR}/src\":" \
+ "${S}"/contrib/perl/Build.PL || die
+ fi
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+ if use perl; then
+ cd contrib/perl || die
+ perl-module_src_configure
+ perl-module_src_compile
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cmake-utils_src_test
+ else
+ einfo Cannot test since python is not multilib.
+ fi
+}
+
+src_test() {
+ cmake-multilib_src_test
+ if use perl; then
+ # Perl tests fail due to missing POD coverage...
+ perl_rm_files "contrib/perl/t/pod.t" "contrib/perl/t/pod-coverage.t"
+ cd contrib/perl || die
+ perl-module_src_test
+ fi
+}
+
+src_install() {
+ cmake-multilib_src_install
+ if use perl; then
+ cd contrib/perl || die
+ perl-module_src_install
+ perl_delete_localpod
+ fi
+
+ prune_libtool_files --all
+}