[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#65479] [PATCH core-updates 08/61] gnu: docbook2x: Import patches fr
From: |
Bruno Victal |
Subject: |
[bug#65479] [PATCH core-updates 08/61] gnu: docbook2x: Import patches from debian. |
Date: |
Wed, 23 Aug 2023 23:35:00 +0100 |
* gnu/packages/docbook.scm (docbook2x)[source]: Import patches from
debian. Prefer patching in source over 'patch-sources phase.
[arguments]<#:phases>: Drop 'patch-sources phase. Add 'autoreconf phase.
[inputs]: Move after arguments. Relocate docbook-xml-4.5 to …
[natine-inputs]: … here. Add autoconf, automake and libtool.
* gnu/packages/patches/docbook2x-filename-handling.patch: New file.
* gnu/packages/patches/docbook2x-manpage-typo.patch: Ditto.
* gnu/packages/patches/docbook2x-preprocessor-declaration.patch: Ditto.
* gnu/packages/patches/docbook2x-static-datadir-evaluation.patch: Ditto.
* gnu/local.mk: Register it.
---
gnu/local.mk | 4 +
gnu/packages/docbook.scm | 47 ++++++----
.../patches/docbook2x-filename-handling.patch | 42 +++++++++
.../patches/docbook2x-manpage-typo.patch | 24 +++++
.../docbook2x-preprocessor-declaration.patch | 89 +++++++++++++++++++
.../docbook2x-static-datadir-evaluation.patch | 19 ++++
6 files changed, 206 insertions(+), 19 deletions(-)
create mode 100644 gnu/packages/patches/docbook2x-filename-handling.patch
create mode 100644 gnu/packages/patches/docbook2x-manpage-typo.patch
create mode 100644
gnu/packages/patches/docbook2x-preprocessor-declaration.patch
create mode 100644
gnu/packages/patches/docbook2x-static-datadir-evaluation.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 565a1860ea..08b3904128 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1069,6 +1069,10 @@ dist_patch_DATA =
\
%D%/packages/patches/docbook-utils-respect-refentry-for-name.patch \
%D%/packages/patches/docbook-utils-source-date-epoch.patch \
%D%/packages/patches/docbook-utils-use-date-element.patch \
+ %D%/packages/patches/docbook2x-filename-handling.patch \
+ %D%/packages/patches/docbook2x-manpage-typo.patch \
+ %D%/packages/patches/docbook2x-preprocessor-declaration.patch \
+ %D%/packages/patches/docbook2x-static-datadir-evaluation.patch \
%D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/dovecot-opensslv3.patch \
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 994aa57f18..6a138dcb77 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -27,6 +27,7 @@
(define-module (gnu packages docbook)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages imagemagick)
@@ -867,32 +868,25 @@ (define-public docbook2x
version "/docbook2X-" version ".tar.gz"))
(sha256
(base32
- "0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"))))
+ "0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"))
+ (patches
+ (search-patches "docbook2x-filename-handling.patch"
+ "docbook2x-manpage-typo.patch"
+ "docbook2x-preprocessor-declaration.patch"
+ "docbook2x-static-datadir-evaluation.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Fix a failing test (maybe it worked with old texinfo?)
+ #~(substitute* "test/complete-manuals/at1.xml"
+ (("<bridgehead>")
+ "<bridgehead renderas=\"sect2\">")))))
(build-system gnu-build-system)
- (inputs
- (list bash-minimal
- docbook-xml-4.5
- perl
- perl-xml-namespacesupport
- perl-xml-parser
- perl-xml-sax
- perl-xml-sax-base
- texinfo
- libxslt))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'configure 'patch-sources
(lambda* (#:key inputs #:allow-other-keys)
- ;; Fix failed substitution in config.pl
- (substitute* "perl/config.pl"
- (("\\$\\{prefix\\}")
- #$output))
- ;; Fix a failing test (maybe it worked with old texinfo?)
- (substitute* "test/complete-manuals/at1.xml"
- (("<bridgehead>")
- "<bridgehead renderas=\"sect2\">"))
;; Patch all the tests use DocBook 4.5
(substitute* (find-files "test" "\\.xml$")
(("\"-//OASIS//DTD DocBook XML V4\\..+//EN\"")
@@ -903,6 +897,9 @@ (define-public docbook2x
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml"))))
+ (add-after 'unpack 'autoreconf
+ (lambda _
+ (invoke "autoreconf" "-vif")))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((programs
@@ -936,6 +933,18 @@ (define-public docbook2x
(symlink prog (string-append #$output
"/bin/db2x_" prog)))
'("docbook2man" "docbook2texi")))))))
+ (inputs
+ (list bash-minimal
+ perl
+ perl-xml-namespacesupport
+ perl-xml-parser
+ perl-xml-sax
+ perl-xml-sax-base
+ texinfo
+ libxslt))
+ (native-inputs
+ (list autoconf automake libtool
+ docbook-xml-4.5))
(home-page "https://docbook2x.sourceforge.net")
(synopsis "Convert DocBook to man page and Texinfo format")
(description
diff --git a/gnu/packages/patches/docbook2x-filename-handling.patch
b/gnu/packages/patches/docbook2x-filename-handling.patch
new file mode 100644
index 0000000000..b6895dd0d3
--- /dev/null
+++ b/gnu/packages/patches/docbook2x-filename-handling.patch
@@ -0,0 +1,42 @@
+## 03_fix_420153_filename_whitespace_handling.dpatch by
+## Daniel Leidert (dale) <daniel.leidert@wgdd.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Peter Eisentraut reported a regression in the whitespace handling of
+## DP: refentrytitle content during filename creation:
+## DP: http://bugs.debian.org/420153. The problem is, that upstream first
+## DP: replaces all spaces (but not linebreaks btw) with underlines and then
+## DP: it tries to normalize the result. This means, that a linebreak with
+## DP: additional whitespaces results in manpage names like 'foo_ ____bar.9'.
+## DP: So what we basically do in this patch is, that we first normalize the
+## DP: refentrytitle and then replace any spaces left with underlines.
+
+Edit by Bruno Victal <mirai@makinata.eu>:
+ Removed dpatch lines.
+
+--- docbook2x-0.8.8~/xslt/man/manpage.xsl 2006-04-20 15:45:55.000000000
+0200
++++ docbook2x-0.8.8/xslt/man/manpage.xsl 2007-04-20 16:19:28.000000000
+0200
+@@ -30,7 +30,7 @@
+
+ <xsl:template name="manpage-filename">
+ <xsl:param name="filename" />
+- <xsl:value-of select="normalize-space(translate($filename, " /",
"__"))" />
++ <xsl:value-of select="translate(normalize-space($filename), ' /', '__')" />
+ </xsl:template>
+
+
+--- docbook2x-0.8.8~/xslt/man/refentry.xsl 2006-04-21 04:39:55.000000000
+0200
++++ docbook2x-0.8.8/xslt/man/refentry.xsl 2007-04-20 16:21:53.000000000
+0200
+@@ -38,7 +38,11 @@
+ <xsl:template name="refentry-filename">
+ <xsl:param name="title" />
+
+- <xsl:variable name="title2" select="translate($title, " /",
"__")" />
++ <xsl:variable name="title2">
++ <xsl:call-template name="manpage-filename">
++ <xsl:with-param name="filename" select="$title" />
++ </xsl:call-template>
++ </xsl:variable>
+
+ <!-- not using gentext here since man page names tend not to have
+ accented chars / non-Latin chars ...
diff --git a/gnu/packages/patches/docbook2x-manpage-typo.patch
b/gnu/packages/patches/docbook2x-manpage-typo.patch
new file mode 100644
index 0000000000..5be21bdf9b
--- /dev/null
+++ b/gnu/packages/patches/docbook2x-manpage-typo.patch
@@ -0,0 +1,24 @@
+Author: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+
+--- docbook2x-0.8.8.orig/doc/docbook2man.1
++++ docbook2x-0.8.8/doc/docbook2man.1
+@@ -187,7 +187,7 @@ parameter instead.
+
+ However, inside a custom stylesheet
+ (\fInot on the command-line\fR)
+-this paramter can be set to the XPath expression
++this parameter can be set to the XPath expression
+ \*(T<document('')\*(T>,
+ which will cause the custom translations
+ directly embedded inside the custom stylesheet to be read.
+--- docbook2x-0.8.8.orig/doc/docbook2texi.1
++++ docbook2x-0.8.8/doc/docbook2texi.1
+@@ -230,7 +230,7 @@ parameter instead.
+
+ However, inside a custom stylesheet
+ (\fInot on the command-line\fR)
+-this paramter can be set to the XPath expression
++this parameter can be set to the XPath expression
+ \*(T<document('')\*(T>,
+ which will cause the custom translations
+ directly embedded inside the custom stylesheet to be read.
diff --git a/gnu/packages/patches/docbook2x-preprocessor-declaration.patch
b/gnu/packages/patches/docbook2x-preprocessor-declaration.patch
new file mode 100644
index 0000000000..938f20617a
--- /dev/null
+++ b/gnu/packages/patches/docbook2x-preprocessor-declaration.patch
@@ -0,0 +1,89 @@
+## 04_fix_442782_preprocessor_declaration_syntax.dpatch by Colin Watson
<cjwatson@debian.org>.
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Conventionally, preprocessor declarations should start with
+## DP: '\"
+## DP: rather than
+## DP: .\"
+## DP: Current man-db only supports the first (and recommended) syntax. So
+## DP: Colin Watson provided this patch to fix docbook2x.
+## DP:
+## DP: <URL:http://bugs.debian.org/442782>
+## DP: <URL:http://lists.gnu.org/archive/html/groff/2007-11/msg00023.html>
+
+Edit by Bruno Victal <mirai@makinata.eu>:
+ Removed dpatch lines.
+
+--- trunk~/perl/db2x_manxml.pl 2006-04-22 17:21:32.000000000 +0200
++++ trunk/perl/db2x_manxml.pl 2007-11-24 01:27:37.000000000 +0100
+@@ -342,6 +342,25 @@
+ $self->{line_start} = 1;
+ }
+
++#
++# Print a comment in the output, without causing a break.
++# Params: comment - the comment text.
++# May use any characters; they need not be escaped.
++#
++sub comment_nobreak
++{
++ my ($self, $comment) = @_;
++ $self->write("\n") unless $self->{line_start};
++
++ foreach my $line (split(/\n/, $comment)) {
++ $self->write('\'\" ');
++ $self->write($line);
++ $self->write("\n");
++ }
++
++ $self->{line_start} = 1;
++}
++
+
+ #
+ # Use a roff "escape" i.e. commands embedded in text starting with \
+@@ -510,16 +529,20 @@
+
+ $self->{'adjust-stack'} = [ 'b' ];
+
+- $self->{rw}->comment($elem->attr('preprocessors'))
+- if($elem->attr('preprocessors') ne '');
+-
++ my $preprocessors = $elem->attr('preprocessors');
+ # I've dug through the Internet to see if there was any
+ # standard way to specify encoding with man pages.
+ # The following seems to be a reasonable proposal:
+ # <URL:http://mail.nl.linux.org/linux-utf8/2001-04/msg00168.html>
+ my $encoding = $self->{options}->{'encoding'};
+ $encoding =~ s#//TRANSLIT$##i;
+- $self->{rw}->comment("-*- coding: $encoding -*-");
++ $encoding = "-*- coding: $encoding -*-";
++ if ($preprocessors eq '') {
++ $preprocessors = $encoding;
++ } else {
++ $preprocessors = "$preprocessors $encoding";
++ }
++ $self->{rw}->comment_nobreak($preprocessors);
+
+ # Define escapes for switching to and from monospace fonts (groff only)
+ $self->{rw}->request(qw{ .if \n(.g .ds T< \\\\FC});
+--- trunk~/xslt/backend/db2x_manxml.xsl 2006-04-23 16:44:52.000000000
+0200
++++ trunk/xslt/backend/db2x_manxml.xsl 2007-11-24 01:27:37.000000000 +0100
+@@ -528,7 +528,7 @@
+ <exslt:document method="text"
+ encoding="{$encoding}"
+ href="{$path}">
+- <xsl:text>.\" -*- coding: </xsl:text>
++ <xsl:text>'\" -*- coding: </xsl:text>
+ <xsl:value-of select="$encoding" />
+ <xsl:text> -*- </xsl:text>
+ <xsl:copy-of select="$content" />
+@@ -538,7 +538,7 @@
+ <saxon:output method="text"
+ encoding="{$encoding}"
+ href="{$path}">
+- <xsl:text>.\" -*- coding: </xsl:text>
++ <xsl:text>'\" -*- coding: </xsl:text>
+ <xsl:value-of select="$encoding" />
+ <xsl:text> -*- </xsl:text>
+ <xsl:copy-of select="$content" />
diff --git a/gnu/packages/patches/docbook2x-static-datadir-evaluation.patch
b/gnu/packages/patches/docbook2x-static-datadir-evaluation.patch
new file mode 100644
index 0000000000..5241dc30a7
--- /dev/null
+++ b/gnu/packages/patches/docbook2x-static-datadir-evaluation.patch
@@ -0,0 +1,19 @@
+Description:
+ 01_fix_static_datadir_evaluation.dpatch by Daniel Leidert (dale)
<daniel.leidert@wgdd.de>
+ All lines beginning with `## DP:' are a description of the patch.
+ The evaluation of datadir results in "${prefix}/share" without
+ evaluation of the ${prefix} variable with autoconf 2.60.
+
+Index: docbook2X-0.8.8/configure.ac
+===================================================================
+--- docbook2X-0.8.8.orig/configure.ac
++++ docbook2X-0.8.8/configure.ac
+@@ -148,7 +148,7 @@
+ dnl they will reside and should use these static_* values.
+ dnl Ensure that all static_* are fully expanded.
+
+-eval static_datadir="$datadir"
++eval eval static_datadir="$datadir"
+
+ eval static_bindir="$bindir"
+ old_val=""
--
2.40.1
- [bug#65479] [PATCH core-updates 00/61] The Draining of the XML & DocBook Swamp., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 04/61] gnu: docbook-xsl: Add compatibility entry., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 01/61] gnu: docbook-xml: Fix installation paths., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 02/61] gnu: Add docbook-xml-5.0.1., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 08/61] gnu: docbook2x: Import patches from debian.,
Bruno Victal <=
- [bug#65479] [PATCH core-updates 11/61] gnu: libxml2: Rewrite using G-Expressions., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 10/61] gnu: docbook2x: Split documentation., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 07/61] gnu: docbook-utils: Import patches from debian., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 14/61] gnu: libxslt: Set search-paths for XML and SGML catalogs., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 19/61] gnu: lilypond: Use dblatex/stable., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 15/61] gnu: dblatex: Add libxslt native-search-paths to its own., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 40/61] gnu: sssd: Drop xmllint workaround., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 47/61] gnu: libnotify: Split documentation., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 13/61] gnu: libxml2: Add SGML_CATALOG_FILES to native-search-path., Bruno Victal, 2023/08/23
- [bug#65479] [PATCH core-updates 05/61] gnu: docbook-xsl: Add rewrite entries for http., Bruno Victal, 2023/08/23