On 31.08.22 20:11, Andres Freund wrote:
doc/src/sgml/resolv.xsl: I don't understand what this is doing.  Maybe
at least add a comment in the file.
It's only used for building epubs. Perhaps I should extract that into a
separate patch as well? The relevant section is:

#
# epub
#

# This was previously implemented using dbtoepub - but that doesn't seem to
# support running in build != source directory (i.e. VPATH builds already
# weren't supported).
if pandoc.found() and xsltproc.found()
   # XXX: Wasn't able to make pandoc successfully resolve entities
   # XXX: Perhaps we should just make all targets use this, to avoid repeatedly
   # building whole thing? It's comparatively fast though.
   postgres_full_xml = custom_target('postgres-full.xml',
     input: ['resolv.xsl', 'postgres.sgml'],
     output: ['postgres-full.xml'],
     depends: doc_generated + [postgres_sgml_valid],
     command: [xsltproc, '--path', '@OUTDIR@/', xsltproc_flags,
               '-o', '@OUTPUT@', '@INPUT@'],
     build_by_default: false,
   )
A noted, I couldn't make pandoc resolve our entities, so I used resolv.xsl
them, before calling pandoc.

I'll rename it to resolve-entities.xsl and add a comment.

We can have xmllint do this. The following gets the epub build working with vpath:

diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile
index 4ae7ca2be7..33b72d03db 100644
--- a/doc/src/sgml/Makefile
+++ b/doc/src/sgml/Makefile
@@ -184,8 +184,12 @@ XSLTPROC_FO_FLAGS += --stringparam img.src.path '$(srcdir)/'

 epub: postgres.epub
 postgres.epub: postgres.sgml $(ALLSGML) $(ALL_IMAGES)
-   $(XMLLINT) --noout --valid $<
-   $(DBTOEPUB) -o $@ $<
+   $(XMLLINT) $(XMLINCLUDE) --output tmp.sgml --noent --valid $<
+ifeq ($(vpath_build),yes)
+   $(MKDIR_P) images
+   cp $(ALL_IMAGES) images/
+endif
+   $(DBTOEPUB) -o $@ tmp.sgml


This could also be combined with the idea of the postgres.sgml.valid thing you have in the meson patch set.

I'll finish this up and produce a proper patch.


Reply via email to