mbox series

[bug#61015,core-updates,0/9] Modernize and fix docbook-xml

Message ID cover.1674443296.git.mirai@makinata.eu
Headers show
Series Modernize and fix docbook-xml | expand

Message

Bruno Victal Jan. 23, 2023, 3:31 a.m. UTC
This patch-series modernizes docbook-xml package definitions and
properly patches the catalog.xml paths using XSLT.
I've used XSLT here as it seems easier (and better documented)
to perform XML operations with it. I did a small prototype with
(sxml transforms) but due to guile-bug #20339, it's impossible to go
from sxml->xml, ruling it out from being a suitable replacement for XSLT.

The situation for docbook-xml-4.1.2 could be considered extraordinary
since it's the only package that doesn't come with a catalog.xml file,
requiring a pre-built one to be used. (It can be generated from source,
by implementing a (PEG) parser for SGML catalogs but this seems
unnecessary for a file that is unlikely to see any changes.)

With these changes, it's no longer required for packages to do
substitute* or other workarounds to coerce docbook-xml
to play nicely, libxml2 will automatically find the DTDs
through its native-search-path. (XML_CATALOG_FILES variable)

A good follow-up to this patch-series would be to search and destroy
the workarounds currently employed by docbook-xml dependant packages
to discourage cargo-culting redundant procedures.


Bruno Victal (9):
  gnu: docbook-xml: Use copy-build-system.
  gnu: docbook-xml-4.1.2: Adapt to copy-build-system.
  gnu: docbook-xml: Adapt to copy-build-system.
  gnu: docbook-xml-4.4: Adapt to copy-build-system.
  gnu: docbook-xml-4.3: Adapt to copy-build-system.
  gnu: docbook-xml-4.2: Adapt to copy-build-system.
  gnu: docbook-xml: Fix permissions.
  gnu: docbook-xml: Use XSLT to patch catalog.xml.
  gnu: docbook-xml-4.1.2: Add missing catalog.xml.

 .../xml/docbook-xml/catalog-4.1.2.xml         |  31 +++++
 gnu/packages/aux-files/xml/patch-uri.xsl      |  24 ++++
 gnu/packages/docbook.scm                      | 127 +++++++++---------
 3 files changed, 116 insertions(+), 66 deletions(-)
 create mode 100644 gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml
 create mode 100644 gnu/packages/aux-files/xml/patch-uri.xsl


base-commit: ca124b098dcc7ce7898df10faf9986f44a14e0a1

Comments

Bruno Victal March 6, 2023, 3:22 p.m. UTC | #1
Though this patch-set brings improvements to docbook handling and doesn't seem to break anything,
given that it's unlikely to make it to the upcoming core-updates merge, I'm thinking on reworking this
patch-series a bit further:

* Install the SGML and XML files in separate directories, supposedly some SGML tools choke if they find XML files
while looking for SGML files.

* Squash the 'copy-build-system' patches together since commits are not atomic due to package inheritance.

* Rename patch-uri.xsl to patch-uri-catalog.xml. (Register it in gnu/local.mk ?)

* Refactor the docbook-xsl packages.

* Possibly factor out all of the docbook workarounds used by docbook dependent packages.


Any thoughts before proceeding further?



On 2023-01-23 03:31, Bruno Victal wrote:
> This patch-series modernizes docbook-xml package definitions and
> properly patches the catalog.xml paths using XSLT.
> I've used XSLT here as it seems easier (and better documented)
> to perform XML operations with it. I did a small prototype with
> (sxml transforms) but due to guile-bug #20339, it's impossible to go
> from sxml->xml, ruling it out from being a suitable replacement for XSLT.
> 
> The situation for docbook-xml-4.1.2 could be considered extraordinary
> since it's the only package that doesn't come with a catalog.xml file,
> requiring a pre-built one to be used. (It can be generated from source,
> by implementing a (PEG) parser for SGML catalogs but this seems
> unnecessary for a file that is unlikely to see any changes.)
> 
> With these changes, it's no longer required for packages to do
> substitute* or other workarounds to coerce docbook-xml
> to play nicely, libxml2 will automatically find the DTDs
> through its native-search-path. (XML_CATALOG_FILES variable)
> 
> A good follow-up to this patch-series would be to search and destroy
> the workarounds currently employed by docbook-xml dependant packages
> to discourage cargo-culting redundant procedures.
> 
> 
> Bruno Victal (9):
>   gnu: docbook-xml: Use copy-build-system.
>   gnu: docbook-xml-4.1.2: Adapt to copy-build-system.
>   gnu: docbook-xml: Adapt to copy-build-system.
>   gnu: docbook-xml-4.4: Adapt to copy-build-system.
>   gnu: docbook-xml-4.3: Adapt to copy-build-system.
>   gnu: docbook-xml-4.2: Adapt to copy-build-system.
>   gnu: docbook-xml: Fix permissions.
>   gnu: docbook-xml: Use XSLT to patch catalog.xml.
>   gnu: docbook-xml-4.1.2: Add missing catalog.xml.
> 
>  .../xml/docbook-xml/catalog-4.1.2.xml         |  31 +++++
>  gnu/packages/aux-files/xml/patch-uri.xsl      |  24 ++++
>  gnu/packages/docbook.scm                      | 127 +++++++++---------
>  3 files changed, 116 insertions(+), 66 deletions(-)
>  create mode 100644 gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml
>  create mode 100644 gnu/packages/aux-files/xml/patch-uri.xsl
> 
> 
> base-commit: ca124b098dcc7ce7898df10faf9986f44a14e0a1