summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-text')
-rw-r--r--app-text/docbook-xsl-stylesheets/docbook-xsl-stylesheets-1.79.1-r2.ebuild101
-rw-r--r--app-text/docbook-xsl-stylesheets/files/nonrecursive-string-subst.patch30
2 files changed, 131 insertions, 0 deletions
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 000000000000..77db5fdb1ab0
--- /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 000000000000..99ce9960d9e4
--- /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 <pdewacht@gmail.com>
+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">