Skip to content

Commit d43ddb6

Browse files
committed
docbook-xsl: fix rewrites for non-ns sourceforge URLs
It was routing them to the namespaced style sheets, which resulted, for example, in broken man pages in xmlto. Route old SF URLs to nons, and add rewrites in the nons catalog to handle those old URLs. Also some cleanup
1 parent e7c4d4c commit d43ddb6

2 files changed

Lines changed: 38 additions & 53 deletions

File tree

mingw-w64-docbook-xsl/0001-add-back-old-uri-rewrite.patch

Lines changed: 0 additions & 11 deletions
This file was deleted.

mingw-w64-docbook-xsl/PKGBUILD

Lines changed: 38 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ _realname=docbook-xsl
44
pkgbase=mingw-w64-${_realname}
55
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
66
pkgver=1.79.2
7-
pkgrel=8
7+
pkgrel=9
88
pkgdesc='XML stylesheets for Docbook-xml transformations (mingw-w64)'
99
arch=('any')
1010
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
@@ -16,11 +16,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-libxml2"
1616
"${MINGW_PACKAGE_PREFIX}-docbook-xml")
1717
install=${_realname}-${MSYSTEM}.install
1818
source=(https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${pkgver}/docbook-xsl{,-nons}-${pkgver}.tar.gz
19-
"0001-add-back-old-uri-rewrite.patch"
2019
"0002-fix-infinity.patch")
2120
sha256sums=('966188d7c05fc76eaca115a55893e643dd01a3486f6368733c9ad974fcee7a26'
2221
'f89425b44e48aad24319a2f0d38e0cb6059fdc7dbaf31787c8346c748175ca8e'
23-
'1aef3b01c69cce3552614033cdee9d26e4d6b3770cdf7d62b4055f9062adb9c0'
2422
'4a27dd468bb803290b73aeb3a0fde190a1897b97945b59eaf39d8535bb6332a5')
2523

2624
# Helper macros to help make tasks easier #
@@ -46,7 +44,7 @@ prepare() {
4644
cd "${srcdir}"/${_realname}-${pkgver}
4745

4846
msg2 "${_realname}-${pkgver}"
49-
apply_patch_with_msg 0001-add-back-old-uri-rewrite.patch \
47+
apply_patch_with_msg \
5048
0002-fix-infinity.patch
5149

5250
cd "${srcdir}"/${_realname}-nons-${pkgver}
@@ -59,7 +57,7 @@ prepare() {
5957
package() {
6058
cd "${srcdir}"
6159
mkdir -p "$pkgdir${MINGW_PREFIX}/etc/xml"
62-
${MINGW_PREFIX}/bin/xmlcatalog --noout --create "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
60+
xmlcatalog --noout --create "${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
6361

6462
local pkgroot ns dir
6563
for ns in -nons ''; do
@@ -79,45 +77,43 @@ package() {
7977
)
8078
done
8179

82-
# sf nons version
83-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateURI \
84-
"http://docbook.sourceforge.net/release/xsl/" \
85-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
86-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
87-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateSystem \
88-
"http://docbook.sourceforge.net/release/xsl/" \
89-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
90-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
91-
92-
# sf ns version
93-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateURI \
94-
"http://docbook.sourceforge.net/release/xsl-ns/" \
95-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
96-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
97-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateSystem \
98-
"http://docbook.sourceforge.net/release/xsl-ns/" \
99-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
100-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
80+
local nons_catalog="${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xsl-stylesheets-nons-$pkgver/catalog.xml"
81+
local catalog="${pkgdir}${MINGW_PREFIX}/share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml"
10182

102-
# cdn ns version
103-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateURI \
104-
"http://cdn.docbook.org/release/xsl/" \
105-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
106-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
107-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateSystem \
108-
"http://cdn.docbook.org/release/xsl/" \
109-
"../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml" \
110-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
83+
# rewrites: <catalog> <scheme-base>
84+
# SF 'xsl/' + CDN 'xsl-nons/' -> non-namespaced catalog
85+
# SF 'xsl-ns/' + CDN 'xsl/' -> namespaced catalog
86+
local rewrites=(
87+
"$nons_catalog|http://docbook.sourceforge.net/release/xsl"
88+
"$nons_catalog|http://cdn.docbook.org/release/xsl-nons"
89+
"$catalog|http://docbook.sourceforge.net/release/xsl-ns"
90+
"$catalog|http://cdn.docbook.org/release/xsl"
91+
)
92+
for entry in "${rewrites[@]}"; do
93+
cat=${entry%%|*}
94+
base=${entry#*|}
95+
for ver in current "$pkgver"; do
96+
xmlcatalog --noout --add rewriteURI "$base/$ver/" "./" "$cat"
97+
xmlcatalog --noout --add rewriteSystem "$base/$ver/" "./" "$cat"
98+
done
99+
done
111100

112-
# cdn nons version
113-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateURI \
114-
"http://cdn.docbook.org/release/xsl-nons/" \
115-
"../../share/xml/docbook/xsl-stylesheets-nons-$pkgver/catalog.xml" \
116-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
117-
${MINGW_PREFIX}/bin/xmlcatalog --noout --add delegateSystem \
118-
"http://cdn.docbook.org/release/xsl-nons/" \
119-
"../../share/xml/docbook/xsl-stylesheets-nons-$pkgver/catalog.xml" \
120-
"${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
101+
# delegations: <scheme-base> <target-catalog-relative-path>
102+
local rootcat="${pkgdir}${MINGW_PREFIX}/etc/xml/docbook-xsl"
103+
local nons_rel="../../share/xml/docbook/xsl-stylesheets-nons-$pkgver/catalog.xml"
104+
local ns_rel="../../share/xml/docbook/xsl-stylesheets-$pkgver/catalog.xml"
105+
local delegations=(
106+
"http://docbook.sourceforge.net/release/xsl/|$nons_rel"
107+
"http://cdn.docbook.org/release/xsl-nons/|$nons_rel"
108+
"http://docbook.sourceforge.net/release/xsl-ns/|$ns_rel"
109+
"http://cdn.docbook.org/release/xsl/|$ns_rel"
110+
)
111+
for entry in "${delegations[@]}"; do
112+
from=${entry%%|*}
113+
target=${entry#*|}
114+
xmlcatalog --noout --add delegateURI "$from" "$target" "$rootcat"
115+
xmlcatalog --noout --add delegateSystem "$from" "$target" "$rootcat"
116+
done
121117

122118
install -Dt "$pkgdir${MINGW_PREFIX}/share/licenses/$pkgname" -m644 $dir/COPYING
123119
}

0 commit comments

Comments
 (0)