Bug 417520 - Exporter searches for XSLT file in nonexistent directory
Summary: Exporter searches for XSLT file in nonexistent directory
Status: RESOLVED UPSTREAM
Alias: None
Product: umbrello
Classification: Applications
Component: exporter (show other bugs)
Version: 2.30.1 (KDE releases 19.12.1)
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-02-12 20:38 UTC by Kyle Kern
Modified: 2020-02-18 16:35 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.30.3 (KDE Applications 19.12.3)


Attachments
Output of running umbrello5 from the terminal in openSUSE (5.58 KB, text/plain)
2020-02-12 20:38 UTC, Kyle Kern
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle Kern 2020-02-12 20:38:10 UTC
Created attachment 125918 [details]
Output of running umbrello5 from the terminal in openSUSE

SUMMARY
Umbrello exports empty DocBook and XHTML files.  The console output indicates that Umbrello is looking for the required XSLT files in a directory that does not exist.


STEPS TO REPRODUCE
1. Install Umbrello from the operating system's software repositories.
2. Open Umbrello and create a UML diagram.
3. Export the model via File >> Export model >> Export model to XHTML.
4. Select the directory for the output.


OBSERVED RESULT
The action fails with the message "XHTML Generation failed ."  The diagram is generated successfully as a PNG file in the output directory, but the DocBook and XHTML output files are empty.


EXPECTED RESULT
The DocBook and XHTML files are generated, and contain the UML model's documentation.


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: openSUSE Tumbleweed 20200201
KDE Plasma Version: 5.17.5
KDE Frameworks Version: 5.66.0
Qt Version: 5.14.1

ADDITIONAL INFORMATION
The problem also exists on Manjaro Linux with the same KDE and Qt software versions noted above.

Exporting the DocBook output does not generate an error, but the output file is still empty.

When run from the terminal, Umbrello indicates that it is searching for an XSLT file in a directory that does not exist.  The path varies between the two aforementioned operating systems, but in both cases the path name suggests that Umbrello is searching for the absolute path of the XSLT file on the system that built the installer package.  On openSUSE Tumbleweed, the path is "/home/abuild/rpmbuild/BUILD/umbrello-19.12.1/umbrello/docgenerators/docbook2xhtml.xsl".  I have attached the output from running Umbrello on openSUSE.

A possible workaround is to create a symbolic link from the directory named in Umbrello's command-line output to the directory where the XSLT files are actually installed.
Comment 1 Ralf Habacker 2020-02-16 05:32:54 UTC
There are two issues: 

> umbrello: XSLT is' "" '

This indicates that umbrello cannot find the required xsl stylesheet, which is provided on the openuse system by the docbook-xsl-stylesheets package and does not appear to be installed. 

For https://build.opensuse.org/package/view_file/KDE:Applications/umbrello/umbrello.spec?expand=1 this runtime dependency is missing.

> umbrello: Local xsl is' "" '
This indicates that umbrello5 search the file docbook2xhtml.xsl in the wrong directory, which is a bug inside umbrello https://github.com/KDE/umbrello/blob/d426a5dbcfe1a6a20a50b8b25c07887f4889537c/umbrello/docgenerators/xhtmlgenerator.cpp#L261.
Comment 2 Ralf Habacker 2020-02-16 05:44:32 UTC
Git commit aa66d92440698ad1aa8981482b24eb2f7939cb53 by Ralf Habacker.
Committed on 16/02/2020 at 05:44.
Pushed by habacker into branch 'release/19.12'.

Fix KF5 issue 'Exporter searches for XSLT file in nonexistent directory'
FIXED-IN:2.30.3 (KDE Applications 19.12.3)

M  +1    -1    umbrello/docgenerators/xhtmlgenerator.cpp

https://invent.kde.org/kde/umbrello/commit/aa66d92440698ad1aa8981482b24eb2f7939cb53
Comment 3 Ralf Habacker 2020-02-16 05:45:29 UTC
(In reply to Ralf Habacker from comment #1)
> For
> https://build.opensuse.org/package/view_file/KDE:Applications/umbrello/
> umbrello.spec?expand=1 this runtime dependency is missing.
> 
This need to be reported to the opensuse distribution bug tracker.
Comment 4 Ralf Habacker 2020-02-17 10:34:51 UTC
Git commit 4c9269461cd55806ae886c2bbd8294090a328d2c by Ralf Habacker.
Committed on 17/02/2020 at 10:34.
Pushed by habacker into branch 'release/19.12'.

Correction of the path setting for the Docbook and Xhtml export

The general data directory is now uniformly used as a basis.

M  +2    -2    umbrello/docgenerators/docbookgeneratorjob.cpp
M  +6    -6    umbrello/docgenerators/xhtmlgenerator.cpp

https://invent.kde.org/kde/umbrello/commit/4c9269461cd55806ae886c2bbd8294090a328d2c
Comment 5 Ralf Habacker 2020-02-18 10:33:19 UTC
Git commit 05f582a0ffae75be72da2588b9f320c3647b37c9 by Ralf Habacker.
Committed on 18/02/2020 at 10:32.
Pushed by habacker into branch 'release/19.12'.

Fix finding docbook stylesheet by using xml catalog support

This eliminates the need to patch the xsl stylesheets.

This commit introduced a namespace File_Utils, which contains file-related
methods.

M  +1    -0    umbrello/CMakeLists.txt
M  +5    -26   umbrello/docgenerators/docbook2xhtmlgeneratorjob.cpp
M  +20   -0    umbrello/docgenerators/docbookgenerator.cpp
M  +2    -1    umbrello/docgenerators/docbookgenerator.h
M  +11   -8    umbrello/docgenerators/docbookgeneratorjob.cpp
M  +2    -19   umbrello/docgenerators/xhtmlgenerator.cpp
M  +0    -1    umbrello/docgenerators/xhtmlgenerator.h
A  +38   -0    umbrello/file_utils.cpp     [License: GPL (v2+)]
A  +20   -0    umbrello/file_utils.h     [License: GPL (v2+)]

https://invent.kde.org/kde/umbrello/commit/05f582a0ffae75be72da2588b9f320c3647b37c9
Comment 6 Ralf Habacker 2020-02-18 13:52:26 UTC
Git commit 3059fa8486fe3ba51e64b8d2ea33a6d3e6c86b5a by Ralf Habacker.
Committed on 18/02/2020 at 13:52.
Pushed by habacker into branch 'release/19.12'.

Use a more reliable way on Windows to find the application's installation root

M  +4    -4    umbrello/file_utils.cpp

https://invent.kde.org/kde/umbrello/commit/3059fa8486fe3ba51e64b8d2ea33a6d3e6c86b5a
Comment 7 Ralf Habacker 2020-02-18 16:35:04 UTC
Git commit ffd5f5c786c939a52c9207b2c34fcde9d2926098 by Ralf Habacker.
Committed on 18/02/2020 at 16:34.
Pushed by habacker into branch 'release/19.12'.

Use the global xml catalog to replace external docbook.xsl uri

It does not work with Mingw builds of libxml2 2.9.8 and is now obsolete
with the support of the global xml catalog.

M  +1    -5    umbrello/docgenerators/docbookgeneratorjob.cpp

https://invent.kde.org/kde/umbrello/commit/ffd5f5c786c939a52c9207b2c34fcde9d2926098