--enable/disable-mathmldtd autogen option

David Tardon dtardon at redhat.com
Sun Sep 2 22:55:01 PDT 2012


Hi,

On Sun, Sep 02, 2012 at 08:31:48AM +0200, Lionel Elie Mamane wrote:
> scp2/source/math/file_math.scp:#ifndef WITHOUT_MATHMLDTD
> scp2/source/math/file_math.scp-File gid_File_Html_W3c_Ipr
> scp2/source/math/file_math.scp-    TXT_FILE_BODY;
> scp2/source/math/file_math.scp-    Styles = (PACKED);
> scp2/source/math/file_math.scp-    Dir = gid_Dir_Share_Dtd_Math_1_01;
> scp2/source/math/file_math.scp-    Name = "w3c_ipr_software_notice.html";
> scp2/source/math/file_math.scp-End
> scp2/source/math/file_math.scp-
> scp2/source/math/file_math.scp-#endif
> 
> 
> So it like it *only* installs the file w3c_ipr_software_notice.html,
> and not the file MathMLDTD/math.dtd, like it looks like it is supposed
> to.
> 
> Or I misunderstand how our install/packaging process works: I assume
> Dir = "gid_Dir_Share_Dtd_Math_1_01" only creates the directory, not
> installs its whole contents that is populated by Makefiles.
> 
> In the other case, maybe this is a duplicate because
> MathMLDTD/Package_bin.mk has:
> 
> $(eval $(call gb_Package_add_file,MathMLDTD_bin,bin/math.dtd,math.dtd))
> $(eval $(call gb_Package_add_file,MathMLDTD_bin,bin/w3c_ipr_software_notice.html,w3c_ipr_software_notice.html))
> 
> which looks like it would install both or none.

You are underestimating the baroque complexity of our installation
system :-) It works like this:
0. (not part of installation) The makefiles are "configuration" for
   gbuild: what to build and where to put the results. The built files
   are put into the solver (or $(OUTDIR) in gbuild terminology).
1. The scp files in scp2 define installation set(s), i.e., what files
   (if I simplify it) are in the _installed_ product and where. It
   contains definitions of all files (directive File) and directories
   (directive Directory); each of them has a parent directory (Dir).
2. Then there is _another_ configuration in instsetoo_native that tells
   the installation set creator (an abominable perl script) _where_ to
   look for the files to put into the installation set (a list of paths
   in solver; it works like include paths in C preprocessor).
(3. There is yet another configuration in setup_native that specifies
    how the installation is split into native packages (rpms, debs), but
    that has no bearing to the present discussion...)

> 
> 
> 3) If this all works, it installs --- eeeek!! ---- a *modified* MathML
>    DTD. So either we need the modified DTD and this should be enabled
>    by default, or we don't need the modified DTD (we are OK with the
>    pristine W3C DTD) and then why optionally install a modified one?
>    We should *maybe* optionally install the *pristine* one. I can
>    imagine we'd like to bundle it at least on platforms where it is
>    not already available?
> 
>    Anybody has any info on that?

Commit c12f405260d8620ccafe9d46d7883cc7519ff285 contains the
modifications. The added namespace prefix looks entirely bogus to me
(but I have not used DTDs for a looong time, so maybe I just do not
remember why it might be needed). The removed references for ISO
entities make some sense, because LibreOffice does never write entities
and it would mean we need to include these DTDs in the installation too,
otherwise the validation would still fail on the platforms where they
are not already available.

Of course, that does not answer the question why should we bother
installing the math.dtd at all, because AFAIK we do not do any
validation by default.

D.


More information about the LibreOffice mailing list