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 .

Reply via email to