Package: gnucash-docs
Version: 2.6.15-1
Severity: normal
gnucash-docs breaks when localpurge is used (to save disk space).
Here you can see localepurge configured for English only (to save disk space):
# grep help /etc/dpkg/dpkg.cfg.d/*
/etc/dpkg/dpkg.cfg.d/50localepurge:path-exclude=/usr/share/gnome/help/*/*
/etc/dpkg/dpkg.cfg.d/50localepurge:path-include=/usr/share/gnome/help/*/C/*
/etc/dpkg/dpkg.cfg.d/50localepurge:path-include=/usr/share/gnome/help/*/en/*
/etc/dpkg/dpkg.cfg.d/50localepurge:path-include=/usr/share/gnome/help/*/en_AU.UTF-8/*
When this is done, yelp cannot render the gnucash manual AT ALL:
$ yelp /usr/share/gnome/help/gnucash-help/C/gnucash-help.xml
I/O warning : failed to load external entity
"/usr/share/gnome/help/gnucash-help/C/Help_legal.xml"
/usr/share/gnome/help/gnucash-help/C/gnucash-help.xml:105: parser error :
Failure to process entity legal
&legal;
^
/usr/share/gnome/help/gnucash-help/C/gnucash-help.xml:105: parser error :
Entity 'legal' not defined
&legal;
^
The problem is this symlink:
(bootstrap:heads/prisonpc-desktop-staff)root@zygon:/# apt install
--reinstall gnucash-docs
...
Get:1 http://apt.cyber.com.au/debian stretch/main amd64 gnucash-docs all
2.6.15-1 [114 MB]
...
(bootstrap:heads/prisonpc-desktop-staff)root@zygon:/# file
/usr/share/gnome/help/gnucash-help/C/Help_legal.xml
/usr/share/gnome/help/gnucash-help/C/Help_legal.xml: broken symbolic link
to ../../gnucash-guide/ja/legal.xml
As "C" is the fallback locale, I think it should always work.
In other words, please reverse such symlinks (ja -> C, not C -> ja).
It looks like this is the problem:
https://salsa.debian.org/debian/gnucash-docs/blob/master/debian/rules#L48
Using hardlinks is a quick fix, but might cause more problems:
-# Replace duplicate files with symlinks, to save space.
-# And make sure that files from /usr/share/doc are not taken as original
copy.
-rdfind -outputname /dev/null -makesymlinks true
debian/gnucash-docs/usr/share/gnome/ debian/gnucash-docs/usr/share/doc/
-# Fix those symlinks to make them relative
-symlinks -r -s -c debian/gnucash-docs/
+# Hard link duplicate files together, to save space.
+cd debian/gnucash-docs && hardlink -vc .