diff options
Diffstat (limited to 'app-text')
-rw-r--r-- | app-text/docbook-xsl-stylesheets/docbook-xsl-stylesheets-1.79.1-r2.ebuild | 101 | ||||
-rw-r--r-- | app-text/docbook-xsl-stylesheets/files/nonrecursive-string-subst.patch | 30 |
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"> |