Bug 771530

Summary: gnucash: help not found
Product: [openSUSE] openSUSE 12.1 Reporter: Ulrich Windl <Ulrich.Windl>
Component: GNOMEAssignee: Dominique Leuenberger <dimstar>
Status: VERIFIED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: dimstar, forgotten_87oBmiUsGW, suse-beta
Version: Final   
Target Milestone: ---   
Hardware: i586   
OS: openSUSE 12.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Ulrich Windl 2012-07-14 15:56:33 UTC
User-Agent:       Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0

I have installed gnucash, gnucash-lang and gnucash-docs, but whenever trying to access gnucash's help, I only get (German):
"Die Adresse »help:///usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-guide.xml« verweist nicht auf eine gültige Seite."

or

"Die Adresse »help:///usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml« verweist nicht auf eine gültige Seite."


Reproducible: Always

Steps to Reproduce:
1. Install gnucash and run it (e.g. German locale)
2. Select "Hilfe->GnUCash-Kurs und Konzepte" or "Hilfe->Inhalt"

Actual Results:  
A message window appears saying:
Die Adresse »help:///usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml« verweist nicht auf eine gültige Seite.

Expected Results:  
Help text should be displayed

It seems the help texts are put into the wrong directory:
# rpm -ql gnucash-docs |grep gnucash-.*\\.xml
/usr/share/gnome/help/gnucash/C/gnucash-guide.xml
/usr/share/gnome/help/gnucash/C/gnucash-help.xml
/usr/share/gnome/help/gnucash/de_DE/gnucash-guide.xml
/usr/share/gnome/help/gnucash/de_DE/gnucash-help.xml
/usr/share/gnome/help/gnucash/it_IT/gnucash-guide.xml
/usr/share/gnome/help/gnucash/it_IT/gnucash-help.xml
/usr/share/gnome/help/gnucash/ja_JP/gnucash-guide.xml
# rpm -qa gnucas*
gnucash-docs-2.4.1-4.1.1.noarch
gnucash-2.4.7-3.3.1.i586
gnucash-lang-2.4.7-3.3.1.noarch
Comment 1 Dominique Leuenberger 2012-07-20 19:49:24 UTC
So far I see two problems here:

gnucash starts yelp with the URI
help:///usr/share/gnucash/gnome/help/gnucash/C/gnucash-help.xml, which seems to cause issues.

If it would be using
yelp file:///usr/share/gnucash/gnome/help/gnucash/C/gnucash-help.xml

it would work (I used C language for reference, to not run into the 2nd issue for this test).

the 2nd issue:
pointing to
file:///usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml results in this error:

I/O warning : failed to load external entity "/usr/share/gnucash/gnome/help/gnucash/de_DE/Help_ch_Intro.xml"
/usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml:177: parser error : Failure to process entity intro
&intro;
       ^
/usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml:177: parser error : Entity 'intro' not defined
&intro;
       ^
I/O warning : failed to load external entity "/usr/share/gnucash/gnome/help/gnucash/de_DE/Help_ch_GettingStarted.xml"
/usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml:183: parser error : Failure to process entity getting_started
&getting_started;
                 ^
/usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml:183: parser error : Entity 'getting_started' not defined
&getting_started;
Comment 2 Dominique Leuenberger 2012-07-20 20:09:32 UTC
I very much doubt the quality of the german docs.

Have a look at http://www.gnucash.org/docs.phtml then the german help manual at
http://www.gnucash.org/docs/v2.4/de_DE/gnucash-help/help.html

=> this is broken even on the website (English, Italian and Japanese seem to be fine)
Comment 3 Dominique Leuenberger 2012-07-20 20:33:44 UTC
(at least the used 2.4.1 tarball is broken for german: a bunch of files that is part of svn is not packaged in this tarball... )
Comment 4 Dominique Leuenberger 2012-07-20 21:52:48 UTC
Traced the 2nd part down to susehelp:


gnucash interlinks with libgnome/gnome-vfs to read from gconf which help application to be used. This is set to be gnome-help on a default install.
gnome-help OTOH is a symlink to susehelp.

The command executed is:
gnome-help ghelp:///usr/share/gnucash/gnome/help/gnucash/de_DE/gnucash-help.xml
(note: ghelp:// NO help://)

passing this URI down to yelp would work and start up the proper help.
BUT: susehelp mangles the URI, replacing ghelp:// with help://, thus resulting in an invalid URI for yelp.

Doing the mangling while running yelp is not good...
Comment 5 Dominique Leuenberger 2012-07-20 22:02:01 UTC
created request id 128514 with a proposed patch for "susehelp" package
Comment 6 Dominique Leuenberger 2012-07-20 22:04:35 UTC
Recap, in case we want to do a maintenance release for this:
- Modified package "gnucash-docs", introducing missing files from SVN
- Modified package "susehelp", stopping the mangling of ghelp:// to help:// URIs when running gnome.

@Maintenance: worthy to release an online update for 12.1 with this? (note: likely this was already broken in  11.4, as per various forum threads)
Comment 7 Bernhard Wiedemann 2012-07-21 15:00:21 UTC
This is an autogenerated message for OBS integration:
This bug (771530) was mentioned in
https://build.opensuse.org/request/show/128564 Factory / gnucash-docs
Comment 8 Benjamin Brunner 2012-07-30 14:38:28 UTC
Dominique could you do a submitrequest for 12.1 please. And is it possible to backport the fix for 11.4 w/o too much effort?
Comment 9 Dominique Leuenberger 2012-07-30 14:45:50 UTC
Will prepare the update for 12.1 and see what I can do for 11.4...
Comment 10 Dominique Leuenberger 2012-07-30 18:47:48 UTC
Submitted (hopefully all correct) for 12.1
11.4 seems to be different in a bunch of aspects:
- gnucash-docs is an older version (so submitting the same fix will likely break)
- susehelp might be the same issue (it's 100% the same package), but I'll need to install an 11.4 to be able to reproduce it first.
Comment 11 Forgotten User 87oBmiUsGW 2012-08-01 01:10:39 UTC
Thank You Thank You Thank you. This has been an ongoing problem since at least 10.3! For a while in 11.3 just adding yelp would fix it, but not so in 12.1.

Bob.
Comment 12 Bernhard Wiedemann 2012-08-01 11:00:08 UTC
This is an autogenerated message for OBS integration:
This bug (771530) was mentioned in
https://build.opensuse.org/request/show/129546 Factory / susehelp
Comment 13 Benjamin Brunner 2012-08-02 16:39:38 UTC
Update released for 12.1 and 12.2. Resolved fixed.
Comment 14 Swamp Workflow Management 2012-08-02 17:08:57 UTC
openSUSE-RU-2012:0939-1: An update that has one recommended fix can now be installed.

Category: recommended (low)
Bug References: 771530
CVE References: 
Sources used:
openSUSE 12.1 (src):    gnucash-docs-2.4.1.svn-4.4.1, susehelp-2009.10.06-11.4.1
Comment 15 Forgotten User 87oBmiUsGW 2012-08-18 01:30:51 UTC
I don't understand why only the old 586 version has been fixed...this has also affected the 64 bit version for years.

Does the fix apply to both versions? And is it now uploaded to Open Suse repos?

Thanks very much.
Comment 16 Ulrich Windl 2012-08-20 06:22:24 UTC
I can confirm that after online update the problem being reported was fixed (openSUSE 12.1 (i586)).