linuxmint / linuxmint

Linux Mint
76 stars 9 forks source link

GnuCash help system broken in Mint 21 #520

Open philmanger opened 1 year ago

philmanger commented 1 year ago

After upgrading to Linux Mint 21, the help system in GnuCash accounting software no longer works correctly. If GnuCash and its help system are built from source, selecting "Help/Tutorial and concepts guide" or "Help/Contents" from the GnuCash menu gives you text, but no images. If GnuCash is installed from the Ubuntu 22.04-jammy repository you don't get any help at all. Choosing "Help/Tutorial and concepts guide" results in the message "The URI ghelp:gnucash-guide does not point to a valid page". Choosing "Help/Contents" results in the same message, except it is now gnucash-help that doesn't point to a valid page. In both cases, all the help files have been installed in the correct locations. GnuCash help pages are stored in different directory locations, depending on whether the application is installed from the repository or built from source. If GnuCash and its help system are built from source, the English-language version of the tutorial and concepts guide is stored in $CMAKE_INSTALL_PREFIX/share/gnome/help/gnucash-guide/C with graphical files in a further subdirectory, figures/. and the contents are stored in $CMAKE_INSTALL_PREFIX/share/gnome/help/gnucash-help/C with a figures/ subdirectory for graphical files. In my case, $CMAKE_INSTALL_PREFIX refers to /usr/local -- the same install prefix in which I install the actual application -- but it could be any directory. The point is, the directory tree in the Mint 21 installation is identical to that in the Mint 20.3 installation. The repository version stores the same help files in /usr/share/doc/gnucash-docs/gnucash-guide-en with a figures/ and stylesheet/ subdirectory, and /usr/share/doc/gnucash-docs/gnucash-help-en, also with a figures/ and stylesheet/ subdirectory. Again, the same path is used in both Mint 21 and Mint 20.3.

yavnest commented 9 months ago

For future people with this problem:

Here's where it searches for its gnucash-guide and gnucash-manual directories on my system ("acer" is my username; this output is from strace -f -e "trace=%file" /usr/bin/gnucash ):

[pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-manual", {st_mode=S_IFDIR|0775, st_size=4096, ...}, 0) = 0 [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-manual/index.page", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-manual/index.docbook", {st_mode=S_IFREG|0664, st_size=22556, ...}, 0) = 0 [pid 41533] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/gnome/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/gnome/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/gnome/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/local/share/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/local/share/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/local/share/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/help/en_US/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/help/en/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory) [pid 41533] newfstatat(AT_FDCWD, "/usr/share/help/C/gnucash-manual", 0x7f050dfa58c0, 0) = -1 ENOENT (No such file or directory)

[pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-guide", {st_mode=S_IFDIR|0775, st_size=4096, ...}, 0) = 0 [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-guide/index.page", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/help/C/gnucash-guide/index.docbook", {st_mode=S_IFREG|0664, st_size=27366, ...}, 0) = 0 [pid 41263] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/cinnamon/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/gnome/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/gnome/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/gnome/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/home/acer/.local/share/flatpak/exports/share/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/var/lib/flatpak/exports/share/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/local/share/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/local/share/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/local/share/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/help/en_US/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/help/en/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory) [pid 41263] newfstatat(AT_FDCWD, "/usr/share/help/C/gnucash-guide", 0x7fdeda6e68c0, 0) = -1 ENOENT (No such file or directory)

I put the files in /home/acer/.local/share/help/C/gnucash-manual and /home/acer/.local/share/help/C/gnucash-guide , that's why it doesn't give "no such file or directory" to these. I took them from https://github.com/Gnucash/gnucash-docs/tree/stable/C