summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/docbook-xsl/765567_non-recursive_string_subst.patch30
-rw-r--r--system/docbook-xsl/APKBUILD44
-rw-r--r--system/docbook-xsl/docbook-xsl.install47
-rw-r--r--system/docbook-xsl/docbook-xsl.post-deinstall10
-rw-r--r--system/docbook-xsl/docbook-xsl.post-install29
-rw-r--r--system/docbook-xsl/docbook-xsl.post-upgrade33
6 files changed, 193 insertions, 0 deletions
diff --git a/system/docbook-xsl/765567_non-recursive_string_subst.patch b/system/docbook-xsl/765567_non-recursive_string_subst.patch
new file mode 100644
index 000000000..99ce9960d
--- /dev/null
+++ b/system/docbook-xsl/765567_non-recursive_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">
diff --git a/system/docbook-xsl/APKBUILD b/system/docbook-xsl/APKBUILD
new file mode 100644
index 000000000..0482a76ef
--- /dev/null
+++ b/system/docbook-xsl/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=docbook-xsl
+pkgver=1.79.1
+pkgrel=2
+pkgdesc="XML stylesheets for Docbook-xml transformations."
+url="http://docbook.sourceforge.net/"
+arch="noarch"
+options="!check" # Just XML files
+license="MIT"
+depends="libxml2-utils libxslt docbook-xml"
+makedepends=""
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
+source="http://downloads.sourceforge.net/sourceforge/docbook/$pkgname-$pkgver.tar.bz2
+ 765567_non-recursive_string_subst.patch
+ "
+
+package() {
+ cd "$builddir"
+ local _dest dir f
+ _dest="$pkgdir"/usr/share/xml/docbook/xsl-stylesheets-$pkgver
+
+ install -dm755 "$_dest"
+ install -m644 VERSION VERSION.xsl "$_dest"/
+
+ for dir in assembly common eclipse epub epub3 fo highlighting html \
+ htmlhelp javahelp lib manpages params profiling roundtrip \
+ template website xhtml xhtml-1_1 xhtml5; do
+
+ install -dm755 $_dest/$dir
+ for f in $dir/*.xml $dir/*.xsl $dir/*.dtd $dir/*.ent; do
+ [ -e "$f" ] || continue
+ install -m644 $f $_dest/$dir
+ done
+ done
+
+ install -dm755 "$pkgdir"/etc/xml
+
+ install -m644 -D COPYING \
+ "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="83325cbaf1545da6b9b8b77f5f0e6fdece26e3c455164b300a1aa3d19e3bd29ae71fd563553a714a5394968d1a65684c6c7987c77524469358d18b8c227025c7 docbook-xsl-1.79.1.tar.bz2
+6a26838078a3ce28273dddfa1af6a378cffc28b6d1ba48a4cfc839addd7bf58ce217d6584b735f9c75381954744ab2386c75fa3c593858b6e27882be55c00d04 765567_non-recursive_string_subst.patch"
diff --git a/system/docbook-xsl/docbook-xsl.install b/system/docbook-xsl/docbook-xsl.install
new file mode 100644
index 000000000..a8ea3e72b
--- /dev/null
+++ b/system/docbook-xsl/docbook-xsl.install
@@ -0,0 +1,47 @@
+post_install() {
+ if [ ! -f /etc/xml/catalog ]; then
+ xmlcatalog --noout --create /etc/xml/catalog
+ fi
+ _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'`
+
+ xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
+ xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog &&
+
+ xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog &&
+
+ xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+}
+
+post_upgrade() {
+ post_remove $2
+ post_install $1
+}
+
+post_remove() {
+ _OLD=`echo $1 | sed 's|\(.*\)\-.*|\1|'`
+ xmlcatalog --noout --del "/usr/share/xml/docbook/xsl-stylesheets-${_OLD}" etc/xml/catalog
+
+ if [ $(vercmp $1 1.72.0-3) -lt 0 ]; then
+ xmlcatalog --noout --del "/usr/share/xml/docbook" etc/xml/catalog
+ xmlcatalog --noout --del "file:///etc/xml/docbook" etc/xml/catalog
+ fi
+}
+
+op=$1
+shift
+
+$op $*
+
diff --git a/system/docbook-xsl/docbook-xsl.post-deinstall b/system/docbook-xsl/docbook-xsl.post-deinstall
new file mode 100644
index 000000000..3faecd5a3
--- /dev/null
+++ b/system/docbook-xsl/docbook-xsl.post-deinstall
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+_OLD=${1%-r[0-9]*}
+
+if command -v xmlcatalog > /dev/null; then
+ xmlcatalog --noout --del \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_OLD}" \
+ etc/xml/catalog
+fi
+
diff --git a/system/docbook-xsl/docbook-xsl.post-install b/system/docbook-xsl/docbook-xsl.post-install
new file mode 100644
index 000000000..6afae6abe
--- /dev/null
+++ b/system/docbook-xsl/docbook-xsl.post-install
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+if [ ! -f /etc/xml/catalog ]; then
+ xmlcatalog --noout --create /etc/xml/catalog
+fi
+
+
+_NEW=${1%-r[0-9]*}
+
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog &&
+
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog &&
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
diff --git a/system/docbook-xsl/docbook-xsl.post-upgrade b/system/docbook-xsl/docbook-xsl.post-upgrade
new file mode 100644
index 000000000..d481480fc
--- /dev/null
+++ b/system/docbook-xsl/docbook-xsl.post-upgrade
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+if [ ! -f /etc/xml/catalog ]; then
+ xmlcatalog --noout --create /etc/xml/catalog
+fi
+
+_NEW=${1%-r[0-9]*}
+_OLD=${2%-r[0-9]*}
+
+xmlcatalog --noout --del \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_OLD}" \
+ etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
+ etc/xml/catalog
+