After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 684686 - Cannot run any available version under openSUSE 12.2
Cannot run any available version under openSUSE 12.2
Status: RESOLVED NOTGNOME
Product: GnuCash
Classification: Other
Component: User Interface General
2.4.x
Other Linux
: Normal critical
: ---
Assigned To: Christian Stimming
Geert Janssens
Depends on:
Blocks:
 
 
Reported: 2012-09-23 21:09 UTC by Andy Lavarre
Modified: 2018-06-29 23:10 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Andy Lavarre 2012-09-23 21:09:42 UTC
Running any GnuCash version under 12.2 as either USER or ROOT fails, returning:

    gnc.bin-Message: main: binreloc relocation support was disabled at configure 
    time.

    **
    gnc.gui:ERROR:gnc-icons.c:74:gnc_add_stock_icon_pair: assertion failed: 
    (pixbuf1 && pixbuf2)
    Aborted
-------------
I have tried versions 2.4.7, .8, .9, .10, and .11. All respond the same.
-------------
Investigation offers the following:

***** The problem seems to be a gnc-gnome-utils package missing from the openSUSE repositories.

**** It also appears that there is a more general problem with GTK libraries under openSUSE 12.2  since the upgrade from 12.1, since I ALSO have GTK problems with Mozilla Firebird and Thunderbird. They use GTK icons, which have now disappeared.  I am using KDE, not Gnome. 

*** Others are reporting similar problems with GnuCash not starting under openSUSE 12.2, with varying solutions (or not).

** The GnuCash dependencies appear to be rather rigid, since in trying to install the older versions (e.g., 8, 9, 10) from source results in complaints about missing dependencies of a specific version of a library, while a newer version is already installed. For example:

     gnucash 2.4.7-3.3.1 requires libofx.so.4, not available in openSUSE repositories, although libofx-0.9.5-3.1.2.i586 is already installed. 

-----

* So, in short, there is a specific problem with openSUSE 12.2/GTK but a more general problem of having dependencies being rigidly set for specific versions instead of specific versions and any later versions.

Below are further data from my several hours of experimentation, hope they help.

Kind regards, Andy Lavarre
alavarre@gmail.com
------------------------------------------------------------------------------

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653395
> I managed to start it by making a symlink: ln -s /usr/lib /usr/lib32.

I tried this, but no change. So I deleted the link.

> Gnucash depends on guile-1.8

I did not have guile installed, and do not have version 1.8 available from the openSUSE repositories, only the later version 2.0, although guile1 is version 1.8 and is installed. yelp is installed with the only available version. 

So I try installing guile-2.0.5-3.2.2

No change. Uninstall guile-2.0.5-3.2.2

+++++

http://svn.gnucash.org/docs/HEAD/gnc-icons_8c_source.html

gives the source code for gnc-icons.c. Lines 74 and 75 call a function gnc_gnome_get_gdkpixbuf

00074     pixbuf1 = gnc_gnome_get_gdkpixbuf (filename1);
00075     pixbuf2 = gnc_gnome_get_gdkpixbuf (filename2);

+++++

http://svn.gnucash.org/docs/HEAD/group__GuiGnome.html#gab6bfcf239683a006959ac24902214b58

indicates that that function is defined at line 438 of file gnc-gnome-utils.c. But that file is missing from my system, although we do have the header file:
	/usr/include/gnucash/gnc-gnome-utils.h 

- if the source c file is missing then the package could not have been properly compiled, right?

I tried to reconstitute it but searching for any combination of gnc, gnome, utils fails to find gnc-gnome-utils.c on my system.

+++++

So I install gnucash-devel, it brings along a host of other files. But no change, so uninstall. In fact completely remove gnucash, and try building 2.4.11 from source.

+++++

The first attempt complains about a missing guile. Add that, try again.

  guile does not appear to be installed correctly, or is not in the
  correct version range.  Perhaps you have not installed the guile
  development packages?  Gnucash requires at least version 1.6.7 to build.

+++++

zypper installs guile-2.0.5-3.2.2 and guile-devel:

  gc-devel guile-devel libffi47-devel libguilereadline-v-18-18 libunistring-devel 

Now we get

  configure: error: cannot find GtkHTML >= 3.14

But trying to install it returns:

  libgtkhtml-4_0-0' providing 'gtkhtml' is already installed.

So we need to downgrade libgtkhtml. But yast does not offer any older versions.

So remove gnucash, guile, libgtkhtml, reboot, and reinstall the lowest possible version of gnucash: 

2.4.7-3.3.1 requires libofx.so.4, not available, although libofx-0.9.5-3.1.2.i586 is already installed. 

So the packagers only allow specific versions, not newer versions.

OK, we'll try one more: 

gnucash-2.4.9-1.fc16.i686.rpm 

but it fails with the same error.

OK, reboot, retry with a vanilla zypper install, then log it and go do something else.

No joy. Herewith logging it.

Now off to something else.
Comment 1 André Klapper 2012-09-24 21:26:40 UTC
This really sounds like something that should be fixed on the packaging level of your distribution. Did you file a bug report in openSuse's bugtracker?
Comment 2 Geert Janssens 2012-10-12 17:14:37 UTC
From what I see, André is correct to list this as a packaging issue in openSuse. But I'll add some comments in your elaborate report, perhaps this can help.

(In reply to comment #0)
> Running any GnuCash version under 12.2 as either USER or ROOT fails, returning:
> 
>     gnc.bin-Message: main: binreloc relocation support was disabled at
> configure 
>     time.

This may be an issue, though I'm not sure. I'll come back to it later.

> Investigation offers the following:
> 
> ***** The problem seems to be a gnc-gnome-utils package missing from the
> openSUSE repositories.
> 
This assumption is wrong. gnc-gnome-utils is not a separate package in the openSUSE repositories. The GnuCash sources contain a source file called gnc-gnome-utils.c (in src/gnome-utils). This source files gets compiled and linked into a shared library libgncmod-gnome-utils.so

> **** It also appears that there is a more general problem with GTK libraries
> under openSUSE 12.2  since the upgrade from 12.1, since I ALSO have GTK
> problems with Mozilla Firebird and Thunderbird. They use GTK icons, which have
> now disappeared.  I am using KDE, not Gnome. 
> 

Possibly, but these are not related to the particular error you report above.

> *** Others are reporting similar problems with GnuCash not starting under
> openSUSE 12.2, with varying solutions (or not).
> 
> ** The GnuCash dependencies appear to be rather rigid, since in trying to
> install the older versions (e.g., 8, 9, 10) from source results in complaints
> about missing dependencies of a specific version of a library, while a newer
> version is already installed. For example:
> 
>      gnucash 2.4.7-3.3.1 requires libofx.so.4, not available in openSUSE
> repositories, although libofx-0.9.5-3.1.2.i586 is already installed. 
> 

I'm not sure where that comes from. The GnuCash configuration scripts only check for the availability of libofx and don't enforce a particular version. I double checked in both GnuCash 2.4.7 and 2.4.11. My guess is this comes from the packaging requirements as well, although you don't give details on how you attempt to build from source.

...
> 
> > Gnucash depends on guile-1.8
> 
> I did not have guile installed, and do not have version 1.8 available from the
> openSUSE repositories, only the later version 2.0, although guile1 is version
> 1.8 and is installed. yelp is installed with the only available version. 
> 
To avoid a package name clash it seems the openSUSE packagers have chosen to guile1 as the name of the package providing guile 1.8.x. This is common practise to be able to install two major versions of a package alongside each other in one system. So on openSUSE you don't need the package guile (which provides guile 2.x) but guile1. That was ok.

> So I try installing guile-2.0.5-3.2.2
> 
> No change. Uninstall guile-2.0.5-3.2.2

GnuCash doesn't work with guile 2.x. You need guile 1.8.x, which was correctly provided by package guile1.

I don't think your guile installation is the problem here by the way. The error you run into is not guile related at all.

> 
> +++++
> 
> http://svn.gnucash.org/docs/HEAD/gnc-icons_8c_source.html
> 
> gives the source code for gnc-icons.c. Lines 74 and 75 call a function
> gnc_gnome_get_gdkpixbuf
> 
> 00074     pixbuf1 = gnc_gnome_get_gdkpixbuf (filename1);
> 00075     pixbuf2 = gnc_gnome_get_gdkpixbuf (filename2);
> 
> +++++
> 
> http://svn.gnucash.org/docs/HEAD/group__GuiGnome.html#gab6bfcf239683a006959ac24902214b58
> 
> indicates that that function is defined at line 438 of file gnc-gnome-utils.c.
> But that file is missing from my system, although we do have the header file:
>     /usr/include/gnucash/gnc-gnome-utils.h 
> 

As said before, you shouldn't be looking for gnc-gnome-utils.c, but for libgnc-mod-gnome-utils.so and particularly why gnucash is not finding this gnucash module. If gnucash is installed in /usr/bin, then libgncmod-gnome-utils.sh should be in /usr/lib/gnucash.

This is on a normal 32-bit system. I don't have a 64-bit system, so I don't know if the paths should be different on a 64-bit system.

This is also where I refer back to the binreloc error early on. This code is there to help gnucash find its files at runtime. This includes how to find some of the gnucash modules as the one that is not found. Binreloc calculates these paths relative to the installation of the binary. If binreloc is not enabled, GnuCash relies on the paths specified at compile time. Depending on how GnuCash was built, this may cause issues. You will have to investigate which paths will be set at build time in the openSUSE package and then check if the gnucash modules (libgncmod-...) can be found in a sane way with these paths.

But while reading the code, it looks like binreloc is not 64-bit compatible, so it's probably a sane thing to disable it for a 64-bit environment.

> - if the source c file is missing then the package could not have been properly
> compiled, right?

Correct. But from your log it seems you can compile correctly. The problem pops up at runtime.

> 
> I tried to reconstitute it but searching for any combination of gnc, gnome,
> utils fails to find gnc-gnome-utils.c on my system.

See before. It's part of the gnucash sources.

> 
> +++++
> 
> So I install gnucash-devel, it brings along a host of other files. But no
> change, so uninstall. In fact completely remove gnucash, and try building
> 2.4.11 from source.
> 
> +++++
> 
> The first attempt complains about a missing guile. Add that, try again.
> 
>   guile does not appear to be installed correctly, or is not in the
>   correct version range.  Perhaps you have not installed the guile
>   development packages?  Gnucash requires at least version 1.6.7 to build.
> 
> +++++
> 
> zypper installs guile-2.0.5-3.2.2 and guile-devel:

Packages guile and guile-devel install guile 2.x. As said earlier, GnuCash doesn't work with guile 2.x. And apparently the openSUSE packagers know this because even when you install these packages, gnucash will continue to complain that it can't find a proper guile. The message you get is admittedly very confusing. You probably want to install guile1 (already there) and guile1-devel here.

> 
>   gc-devel guile-devel libffi47-devel libguilereadline-v-18-18
> libunistring-devel 
> 
> Now we get
> 
>   configure: error: cannot find GtkHTML >= 3.14
> 
> But trying to install it returns:
> 
>   libgtkhtml-4_0-0' providing 'gtkhtml' is already installed.
> 
Have you tried to install libgtkhtml-devel ? Usually when configure complains about a component missing, it's the -devel package that is missing.

...
> So remove gnucash, guile, libgtkhtml, reboot, and reinstall the lowest possible
> version of gnucash: 
> 
> 2.4.7-3.3.1 requires libofx.so.4, not available, although
> libofx-0.9.5-3.1.2.i586 is already installed. 
> 
> So the packagers only allow specific versions, not newer versions.
> 

This is not something the GnuCash developers can help with, but an openSUSE packager's decision. GnuCash doesn't come with this limitation in the source.

Hopefull this additional information can help you a bit further.
Comment 3 Derek Atkins 2012-10-12 18:04:38 UTC
Sorry, this is an OpenSuse Build/Packaging problem.  There is unfortunately nothing that the GnuCash developers can do to help you here.

Closing as not gnome, because there's nothing we can do.
Comment 4 Frank H. Ellenberger 2012-10-12 18:21:12 UTC
I am also running opensuse 12.2, use firefox and thunderbird
and do not have such issues. I believe somehow your system got broken. 

FYI: There are several gnucash packages at opensuse:
* 12.2 release
* 12.2 update
* OBS:Gnome   (currently in use by me as the maintainer is easy to contact)
* home:J.Engel (this was for a long time that with the most recent aqbanking)
Comment 5 Andy Lavarre 2012-10-14 18:32:57 UTC
Geert hello. Thank you again.

Here is my working through your report:

On 10/12/2012 06:14 PM, GnuCash (bugzilla.gnome.org) wrote:
> https://bugzilla.gnome.org/show_bug.cgi?id=684686
>   GnuCash | User Interface General | 2.4.11
>
> --- Comment #2 from Geert Janssens <info@kobaltwit.be> 2012-10-12 17:14:37 UTC ---
> >From what I see, André is correct to list this as a packaging issue in
> openSuse. But I'll add some comments in your elaborate report, perhaps this can
> help.
>
>> Investigation offers the following:
>>
>> ***** The problem seems to be a gnc-gnome-utils package missing from the
>> openSUSE repositories.
>
> This assumption is wrong. gnc-gnome-utils is not a separate package in the
> openSUSE repositories. The GnuCash sources contain a source file called
> gnc-gnome-utils.c (in src/gnome-utils). This source files gets compiled and
> linked into a shared library libgncmod-gnome-utils.so
Indeed, this file exists:
    tm2t:~ # locate libgncmod-gnome-utils.so
    /usr/lib/gnucash/libgncmod-gnome-utils.so
>
>> *** Others are reporting similar problems with GnuCash not starting under
>> openSUSE 12.2, with varying solutions (or not).
>>
>> ** The GnuCash dependencies appear to be rather rigid, since in trying to
>> install the older versions (e.g., 8, 9, 10) from source results in complaints
>> about missing dependencies of a specific version of a library, while a newer
>> version is already installed. For example:
>>
>>      gnucash 2.4.7-3.3.1 requires libofx.so.4, not available in openSUSE
>> repositories, although libofx-0.9.5-3.1.2.i586 is already installed. 
>> le)
> I'm not sure where that comes from. The GnuCash configuration scripts only
> check for the availability of libofx and don't enforce a particular version. I
> double checked in both GnuCash 2.4.7 and 2.4.11. My guess is this comes from
> the packaging requirements as well, although you don't give details on how youBut 
> attempt to build from source.
I have not attempted to build from source in the raw manner (configure,
make, make install) rather have used the package manager (yast2
sw_single) to either revert to earlier versions or to install RPMs
downloaded from various sources. These failures are from these "in
system" processes. ...
>>> Gnucash depends on guile-1.8
>>

I have checked my installation. guile1 is installed, have nuked all
other guile and gnucash, rebooted and reinstalled gnucash. But still the
same error.
> If gnucash is installed in /usr/bin, then libgncmod-gnome-utils.sh
> should be in /usr/lib/gnucash.
As noted above this is as it is.

> This is on a normal 32-bit system. I don't have a 64-bit system, 
I also have a 32-bit system.

>  This is also where I refer back to the binreloc error early on.
> throuThis code is there to help gnucash find its files at runtime.
> This includes how to find some of the gnucash modules as the one that
> is not found. Binreloc calculates these paths relative to the
> installation of the binary. If binreloc is not enabled, GnuCash relies
> on the paths specified at compile time. Depending on how GnuCash was
> built, this may cause issues. You will have to investigate which paths
> will be set at build time in the openSUSE package and then check if
> the gnucash modules (libgncmod-...) can be found in a sane way with
> these paths. But while reading the code, it looks like binreloc is not
> 64-bit compatible, so it's probably a sane thing to disable it for a
> 64-bit environment. 
Thanks, but I am 32-bit, so assume this part is not relevant.

>  The message you get is admittedly very
> confusing. You probably want to install guile1 (already there) and guile1-devel
> here.
Ah. guile1-devel does not exist in the openSUSE repositories, only
guile-devel (2.0.5-3.2.2)

> Have you tried to install libgtkhtml-devel ?
Thank you. That was NOT installed. I do so. But no joy.

Thank you again. I have worked through all your hard work, but still no
joy. It seems it may be time to move to another distribution, perhaps
Fedora. I like KDE but would rather have a working Gnome than a broken KDE,

Kind regards, Andy
Comment 6 John Ralls 2012-10-14 19:10:24 UTC
I think most of this is a red herring: I took a look at where that error is coming from and it appears that it's (at least one of) the Gnucash icons which are missing. They should be in /usr/share/gnucash/pixmaps, and the list is:

gnc-account-16.png            gnc-invoice-unpost-16.png
gnc-account-delete-16.png     gnc-invoice-unpost.png
gnc-account-delete.png        gnc-jumpto-16.png
gnc-account-edit-16.png       gnc-jumpto.png
gnc-account-edit.png          gnc-split-trans-16.png
gnc-account-new-16.png        gnc-split-trans.png
gnc-account-new.png           gnc-sx-new-16.png
gnc-account-open-16.png       gnc-sx-new.png
gnc-account-open.png          gnc-transfer-16.png
gnc-account.png               gnc-transfer.png
gnc-invoice-16.png            gnucash-icon-128x128.png
gnc-invoice-duplicate-16.png  gnucash-icon-16x16.png
gnc-invoice-duplicate.png     gnucash-icon-256x256.png
gnc-invoice-edit-16.png       gnucash-icon-32x32.png
gnc-invoice-edit.png          gnucash-icon-48x48.bmp
gnc-invoice-new-16.png        gnucash-icon-48x48.png
gnc-invoice-new.png           gnucash-icon-64x64.png
gnc-invoice-pay-16.png        gnucash-icon-96x96.png
gnc-invoice-pay.png           gnucash-icon.ico
gnc-invoice.png               gnucash_splash.png
gnc-invoice-post-16.png       stock_split_title.png
gnc-invoice-post.png          stock_split_watermark.png

They all need to be there (except gnucash-icon.ico, which is for macs). If even one of them is missing, then you'll get the assert, and the only thing to be done is to get the missing ones from somewhere.

OTOH, if *none* of them are there, it might be a config problem. Use `locate gnc-account.png` to find them, then edit /etc/gnucash/environment to set GNC_DATA to that path. If they *are* there, then check /etc/gnucash/environment to make sure that GNC_DATA isn't set to point somewhere else.
Comment 7 Andy Lavarre 2012-10-15 21:44:10 UTC
Well, I tried deleting gnucash and ALL its dependencies. ALL of them.

Including the KDE dependencies.
p
And of course, the system was then trashed... Sigh.

So I found the latest version of Linux Format (#164 December) with its openSUSE 12.2 active DVD, nuked my system and reinstalled from scratch.

And now it works.

Close this ticket.

Sigh,

You gotta love it...

So apparently it is an "upstream" problem. Upgrading opensuse with zypper doesn't do the do for GnuCash. Reinstalling the OS from scratch does.

Cheers, Andy
Comment 8 Geert Janssens 2012-10-16 07:00:08 UTC
Thanks for the follow-up :)
Comment 9 John Ralls 2017-09-24 22:42:51 UTC
Reassign version to 2.4.x so that individual 2.4 versions can be retired.
Comment 10 John Ralls 2018-06-29 23:10:50 UTC
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=684686. Please update any external references or bookmarks.