commit:     3a3329a4c5efc9282fb53096420270cf00aff660
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  5 20:24:44 2017 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Sep  5 20:25:40 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a3329a4

app-text/docbook-xsl-stylesheets: apply nonrecursive-string-subst.patch

Patch taken from Debian.

Bug: https://bugs.debian.org/765567
Bug: https://bugs.gentoo.org/630022
Package-Manager: Portage-2.3.6_p39, Repoman-2.3.3_p17

 .../docbook-xsl-stylesheets-1.79.1-r2.ebuild       | 101 +++++++++++++++++++++
 .../files/nonrecursive-string-subst.patch          |  30 ++++++
 2 files changed, 131 insertions(+)

diff --git 
a/app-text/docbook-xsl-stylesheets/docbook-xsl-stylesheets-1.79.1-r2.ebuild 
b/app-text/docbook-xsl-stylesheets/docbook-xsl-stylesheets-1.79.1-r2.ebuild
new file mode 100644
index 00000000000..77db5fdb1ab
--- /dev/null
+++ b/app-text/docbook-xsl-stylesheets/docbook-xsl-stylesheets-1.79.1-r2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+USE_RUBY="ruby20 ruby21 ruby22 ruby23"
+
+inherit ruby-single
+
+DOCBOOKDIR="/usr/share/sgml/${PN/-//}"
+MY_PN="${PN%-stylesheets}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="XSL Stylesheets for Docbook"
+HOMEPAGE="http://wiki.docbook.org/DocBookXslStylesheets";
+SRC_URI="mirror://sourceforge/docbook/${MY_P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd 
~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="ruby"
+
+RDEPEND=">=app-text/build-docbook-catalog-1.1
+       ruby? ( ${RUBY_DEPS} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Makefile is broken since 1.76.0
+RESTRICT=test
+
+PATCHES=(
+       "${FILESDIR}"/nonrecursive-string-subst.patch
+)
+
+src_prepare() {
+       default
+
+       # Delete the unnecessary Java-related stuff and other tools as they
+       # bloat the stage3 tarballs massively. See bug #575818.
+       rm -rv extensions/ tools/ || die
+       find \( -name build.xml -o -name build.properties \) \
+                -printf "removed %p\n" -delete || die
+
+       if ! use ruby; then
+          rm -rv epub/ || die
+       fi
+}
+
+# The makefile runs tests, not builds.
+src_compile() { :; }
+
+src_test() {
+       emake check
+}
+
+src_install() {
+       # The changelog is now zipped, and copied as the RELEASE-NOTES, so we
+       # don't need to install it
+       dodoc AUTHORS BUGS NEWS README RELEASE-NOTES.txt TODO
+
+       insinto ${DOCBOOKDIR}
+       doins VERSION VERSION.xsl
+
+       local i
+       for i in */; do
+               i=${i%/}
+
+               cd "${S}"/${i}
+               for doc in ChangeLog README; do
+                       if [ -e "$doc" ]; then
+                               mv ${doc} ${doc}.${i}
+                               dodoc ${doc}.${i}
+                               rm ${doc}.${i}
+                       fi
+               done
+
+               doins -r "${S}"/${i}
+       done
+
+       if use ruby; then
+               local cmd="dbtoepub${MY_PN#docbook-xsl}"
+
+               # we can't use a symlink or it'll look for the library in the
+               # wrong path.
+               dodir /usr/bin
+               cat - > "${D}"/usr/bin/${cmd} <<EOF
+#!/usr/bin/env ruby
+
+load "${DOCBOOKDIR}/epub/bin/dbtoepub"
+EOF
+               fperms 0755 /usr/bin/${cmd}
+       fi
+}
+
+pkg_postinst() {
+       build-docbook-catalog
+}
+
+pkg_postrm() {
+       build-docbook-catalog
+}

diff --git 
a/app-text/docbook-xsl-stylesheets/files/nonrecursive-string-subst.patch 
b/app-text/docbook-xsl-stylesheets/files/nonrecursive-string-subst.patch
new file mode 100644
index 00000000000..99ce9960d9e
--- /dev/null
+++ b/app-text/docbook-xsl-stylesheets/files/nonrecursive-string-subst.patch
@@ -0,0 +1,30 @@
+Description: use EXSLT "replace" function when available
+ A recursive implementation  of string.subst is problematic,
+ long strings with many matches will cause stack overflows.
+Author: Peter De Wachter <[email protected]>
+Bug-Debian: https://bugs.debian.org/750593
+
+--- a/lib/lib.xsl
++++ b/lib/lib.xsl
+@@ -10,7 +10,10 @@
+      This module implements DTD-independent functions
+ 
+      ******************************************************************** -->
+-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
++<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
++                xmlns:str="http://exslt.org/strings";
++                exclude-result-prefixes="str"
++                version="1.0">
+ 
+ <xsl:template name="dot.count">
+   <!-- Returns the number of "." characters in a string -->
+@@ -56,6 +59,9 @@
+   <xsl:param name="replacement"/>
+ 
+   <xsl:choose>
++    <xsl:when test="function-available('str:replace')">
++      <xsl:value-of select="str:replace($string, string($target), 
string($replacement))"/>
++    </xsl:when>
+     <xsl:when test="contains($string, $target)">
+       <xsl:variable name="rest">
+         <xsl:call-template name="string.subst">

Reply via email to