Opened 17 years ago

Closed 17 years ago

Last modified 16 years ago

#13472 closed defect (fixed)

gnucash 2.2.1 fails to build on Leopard (10.5.1)

Reported by: sinclair.jesse@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.5.2
Keywords: Cc:
Port:

Description

Gnucash is failing to build because it can't find guile (guile16) on the system.

Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_gnome_gnucash/work/gnucash-2.2.1" && ./configure --prefix=/opt/local --disable-glibtest --disable-debug --disable-profile --disable-dependency-tracking --enable-hbci --enable-ofx " returned error 1
Command output: checking for unistd.h... (cached) yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for dlsym... yes
checking for dlerror... yes
checking for darwin... yes, moving on...
checking for qt_null in -lqthreads... no
checking for qt_null in -lqt... no
checking for main in -ltermcap... yes
checking for main in -lreadline... yes
checking for guile-config... no
checking for build-guile... (cached) no
checking for sin in -lm... yes
checking for main in -lrx... no
checking for qt_null in -lqt... (cached) no
checking for dlopen in -ldl... (cached) yes
checking for t_accept in -lnsl... no
checking for socket in -lsocket... no
checking whether guile works... no
configure: WARNING: Can not find Guile on this system
checking for guile... no
checking for guile - 1.6.0 <= version < 99.99.99... no: 
configure: WARNING: guile version check failed
configure: error:

  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 to build.

May be related to ticket 13319 (which was recently fixed)?

Attachments (7)

gnucash-guile16.diff (608 bytes) - added by ryandesign (Ryan Carsten Schmidt) 17 years ago.
Portfile-guile16.diff (1.6 KB) - added by macosforge.lbn@… 17 years ago.
Portfile-gnucash.diff (1.1 KB) - added by macosforge.lbn@… 17 years ago.
patch-configure.in (7.0 KB) - added by macosforge.lbn@… 17 years ago.
patch-SplitP.h.diff (375 bytes) - added by mp@… 17 years ago.
Portfile-gnucash.2.diff (980 bytes) - added by mp@… 17 years ago.
Portfile-guile16.2.diff (1.5 KB) - added by mp@… 17 years ago.

Download all attachments as: .zip

Change History (33)

comment:1 Changed 17 years ago by jmpalacios (Juan Manuel Palacios)

Milestone: Port Bugs

comment:2 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-dev@… to mas@…

Assigning to gnucash maintainer.

comment:3 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)

I'm not going to try installing gnucash because it has several zillion dependencies I don't want right now. But try the attached patch and see if it fixes the problem for you. Download it to your Desktop, then:

cd `port dir gnucash`
patch -p0 < ~/Desktop/gnucash-guile16.diff
sudo port install

comment:4 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)

I meant:

cd `port dir gnucash`
patch -p0 < ~/Desktop/gnucash-guile16.diff
sudo port install +guile16

Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: gnucash-guile16.diff added

comment:5 Changed 17 years ago by sinclair.jesse@…

Just tried it with the patch and configure quits at the same spot with minor changes in the error reported:

checking for guile - 1.6.0 <= version < 99.99.99... ./configure: line 25960: no: command not found
no: 1.6.8
configure: WARNING: guile version check failed
configure: error:

  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 to build.

comment:6 Changed 17 years ago by sinclair.jesse@…

Sorry, there is more to the error report:

Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_gnome_gnucash/work/gnucash-2.2.1" && ./configure --prefix=/opt/local --disable-glibtest --disable-debug --disable-profile --disable-dependency-tracking --enable-hbci --enable-ofx " returned error 1
Command output: checking mcheck.h presence... no
checking for mcheck.h... no
checking for unistd.h... (cached) yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for dlsym... yes
checking for dlerror... yes
checking for darwin... yes, moving on...
checking for qt_null in -lqthreads... no
checking for qt_null in -lqt... no
checking for main in -ltermcap... yes
checking for main in -lreadline... yes
checking for guile16-config... yes
checking whether guile16-config works... yes
checking for sin in -lm... yes
checking for guile libraries... -L/opt/local/lib -lguile16 -lguile-ltdl -L/opt/local/lib -lm
checking for guile headers... -I/opt/local/include
checking whether guile works... no
configure: WARNING: Can not find Guile on this system
checking for guile... no
checking for guile - 1.6.0 <= version < 99.99.99... ./configure: line 25960: no: command not found
no: 1.6.8
configure: WARNING: guile version check failed
configure: error:

  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 to build.

It looks like it sees guile-config, but it's not working?

comment:7 Changed 17 years ago by mmacleod@…

I have the same problem. It's not just that guile-config needs to be guile16-config, but that there's no 'guile' either, the executable is called 'guile16'. Is there a way to get configure to 'see' guile16 that won't end up confusing the final build?

comment:8 in reply to:  7 ; Changed 17 years ago by macosforge.lbn@…

Replying to mmacleod@ieee.org:

I have the same problem. It's not just that guile-config needs to be guile16-config, but that there's no 'guile' either, the executable is called 'guile16'. Is there a way to get configure to 'see' guile16 that won't end up confusing the final build?

The guile-1.6 utilities are there, but they have the version suffix appended (e.g. guile16 instead of guile).

One possible solution (if you don't have the current guile port installed) is to create symbolic links to the names without a suffix. The symbolic links you need to make (the ones I can remember) are:

   /opt/local/include/libguile -> /opt/local/include/libguile16
   /opt/local/include/libguile.h -> /opt/local/include/libguile16.h
   /opt/local/include/guile -> /opt/local/include/guile16
   /opt/local/bin/guile -> /opt/local/bin/guile16
   /opt/local/bin/guile-config -> /opt/local/bin/guile-config16
   /opt/local/bin/guile-snarf -> /opt/local/bin/guile-snarf16
   /opt/local/bin/guile-tools -> /opt/local/bin/guile-tools16

There seems to be other problems even with this partial solution.

comment:9 in reply to:  8 Changed 17 years ago by macosforge.lbn@…

Replying to macosforge.lbn@spamgourmet.com:

For me 'sudo port -d install gnucash +without_hbci +without_docs +without_quotes +guile16' worked after I created the following symbolic links and then 'sudo port clean gnucash', and try installing gnucash again with the above command.

Here's the list of links that worked for me:

   /opt/local/include/libguile -> /opt/local/include/libguile16
   /opt/local/include/libguile.h -> /opt/local/include/libguile16.h
   /opt/local/include/guile -> /opt/local/include/guile16
   /opt/local/bin/guile -> /opt/local/bin/guile16
   /opt/local/bin/guile-config -> /opt/local/bin/guile-config16
   /opt/local/bin/guile-snarf -> /opt/local/bin/guile-snarf16
   /opt/local/bin/guile-tools -> /opt/local/bin/guile-tools16
   /opt/local/lib/libguile.a -> /opt/local/lib/libguile16.a
   /opt/local/lib/libguile.dylib -> /opt/local/lib/libguile16.dylib
   /opt/local/lib/libguile.la -> /opt/local/lib/libguile16.la

comment:10 Changed 17 years ago by mmacleod@…

That list of links allowed the build to finish for me as well, but like others have experienced the resulting build is crashy. *sigh*

comment:11 Changed 17 years ago by macosforge.lbn@…

Here are the patch files for a more thorough change which I've tested. The patches are for:

  1. guile16 Portfile
  2. gnucash Portfile
  3. gnucash configure script

Here's the tests I've run: With a fresh macports 1.6.0 install, I installed gnucash (which failed, but I just wanted the dependencies installed).

From there I did the following:

  1. `sudo port uninstall slib-guile16 guile16`
  2. Applied the Portfile patch to guile16 port
  3. Applied the Portfile patch to gnucash
  4. Copied the patch-configure.in file into gnucash/files port directory
  5. `sudo port install slib-guile16`
  6. `sudo port install gnucash +without_hbci +without_docs +guile16`

Gnucash at least runs for me. I'm not a power user of gnucash, so I can't attest to anything except that it runs for me and appears to work.

I don't have access to a 10.5 machine, so I haven't tested on and can't speak to stability/issues on 10.5.

Changed 17 years ago by macosforge.lbn@…

Attachment: Portfile-guile16.diff added

Changed 17 years ago by macosforge.lbn@…

Attachment: Portfile-gnucash.diff added

Changed 17 years ago by macosforge.lbn@…

Attachment: patch-configure.in added

comment:12 Changed 17 years ago by nigel@…

I have also been trying to install gnucash 2.2.1 on 10.5.1 intel.

  1. I needed to modify aqbanking Portfile ticket #13750
  1. avahi would not build due to py25-gdbm not building the email below helped disabling the python modules

http://lists.gnucash.org/pipermail/gnucash-user/2007-November/022638.html

  1. It stops on py25-hashlib so just try installing evince by itself?

sudo port install evince

sudo port install gnucash

  1. Various modules had to be forced because of incompatibility with perl
  1. Then we learn that firefox does not install but is unnecessary if you do not need docs thus the command is now

sudo port install +without_docs

  1. Now unfortunately I have the exact problem identified by this ticket.

I have made the changes specified (I think?) but a file could not be found

/opt/local/lib/libguile16.ltdl.la

so I decided to map

/opt/local/lib/libguile16.la -> /opt/local/lib/libguile16.ltdl.la

and voila it works!

I hope that helps somebody else and I also hope somebody can check what I have changed. I think I have remembered everything.

comment:13 Changed 17 years ago by nigel@…

I must have made a mistake because the result is that gnucash will not accept new transations. Part way through editing the new transaction gnucash quits with the following message.

dyld: lazy symbol binding failed: Symbol not found: _mark_split
  Referenced from: /opt/local/lib/gnucash/libgncmod-engine.dylib
  Expected in: flat namespace

dyld: Symbol not found: _mark_split
  Referenced from: /opt/local/lib/gnucash/libgncmod-engine.dylib
  Expected in: flat namespace

Trace/BPT trap

comment:14 Changed 17 years ago by nigel@…

message http://www.mail-archive.com/gnucash-devel@gnucash.org/msg19126.html fixes this problem in _mark_split. There must be a way to put the change in the portfile but I am not sufficiently skilled. I acheived the deletion in SplitP.h by stopping the install just after the file had been extracted and before building and then restarting after the change-big hack!

comment:15 in reply to:  12 Changed 17 years ago by petr.snyder@…

Replying to nigel@nigelking.me.uk:

I have also been trying to install gnucash 2.2.1 on 10.5.1 intel.

The very same problems on ppc (Leopard, macports 1.6 and gnucash), don't worry ... and shouldn't it work that way:

/opt/local/lib/libguile16.ltdl.la -> /opt/local/lib/libguile-ltdl.la

(note the dash vs. dot before ltdl-suffix ...)

comment:16 in reply to:  11 ; Changed 17 years ago by petr.snyder@…

Replying to macosforge.lbn@spamgourmet.com:

Here are the patch files for a more thorough change which I've tested. The patches are for:

  1. guile16 Portfile
  2. gnucash Portfile

Arent't your diffs somehow "reversed"? I managed to apply them, but had to ignore warnings/proposal to use "-R"-mode, so that hunk#2 get's applied, and not hunk#1, which is just:

-# $Id$
+# $Id: Portfile 32175 2007-12-19 07:18:19Z mas@macports.org $

(patch will report that applying this hunk will fail, as "# $Id$" doesn't exist in the original Portfile, but that isn't important)

comment:17 in reply to:  2 ; Changed 17 years ago by petr.snyder@…

Replying to ryandesign@macports.org:

Assigning to gnucash maintainer.

Does someone know if the (just 10.5, intel and ppc-) _mark_split runtime-error is still present in gnucash 2.2.3?

comment:18 in reply to:  14 Changed 17 years ago by petr.snyder@…

Replying to nigel@nigelking.me.uk:

message http://www.mail-archive.com/gnucash-devel@gnucash.org/msg19126.html fixes this problem in _mark_split. There must be a way to put the change in the portfile but I am not sufficiently skilled. I acheived the deletion in SplitP.h by stopping the install just after the file had been extracted and before building and then restarting after the change-big hack!

This is probably a "Leopardish" gnucash-bug and is to fixed somewhere else, but in the meantime You can cat or paste this

--- src/engine/SplitP.h.orig	2007-08-19 15:46:19.000000000 +0200
+++ src/engine/SplitP.h	2008-01-13 10:55:05.000000000 +0100
@@ -149,7 +149,7 @@
 Split * xaccSplitClone (const Split *s);
 
 Split *xaccDupeSplit (const Split *s);
-G_INLINE_FUNC void mark_split (Split *s);
+void mark_split (Split *s);
 
 void xaccSplitVoid(Split *split);
 void xaccSplitUnvoid(Split *split);

to a new file named "patch-SplitP.h.diff" in the gnucash/files port directory.

Now just edit the Portfile and add that filename to the patchfiles-directive that has been patched in before (see Portfile-gnucash.diff), so that it reads

patchfiles      patch-configure.in patch-SplitP.h.diff

That worked for me on a good old Powermac ;-). A first test didn't produce any runtime errors.

comment:19 in reply to:  16 ; Changed 17 years ago by macosforge.lbn@…

Replying to petr.snyder@yahoo.co.uk:

Replying to macosforge.lbn@spamgourmet.com:

Here are the patch files for a more thorough change which I've tested. The patches are for:

  1. guile16 Portfile
  2. gnucash Portfile

Arent't your diffs somehow "reversed"? I managed to apply them, but had to ignore warnings/proposal to use "-R"-mode, so that hunk#2 get's applied, and not hunk#1, which is just:

-# $Id$
+# $Id: Portfile 32175 2007-12-19 07:18:19Z mas@macports.org $

(patch will report that applying this hunk will fail, as "# $Id$" doesn't exist in the original Portfile, but that isn't important)

That line is probably reversed, but the remainder of the patch is as it should be (for both patches). I'm still very much a newbie to generating/applying diffs. My apologies for getting that wrong somehow.

comment:20 in reply to:  19 Changed 17 years ago by petr.snyder@…

Replying to macosforge.lbn@spamgourmet.com:

I am pretty sure now: The timestamps are "reversed" (the orig-file shouldn't be newer than the newer file). No problem, people just should know:
Portfile-guile16.diff and Portfile-gnucash.diff are affected...

type "n" if the patch-utility asks for applying your patchfiles in reversed mode!
Hunk#1 will fail, but that is just the svn ID tag ..,
Hunk#2 will succeed, which is the crucial part.

comment:21 in reply to:  17 Changed 17 years ago by petr.snyder@…

Replying to petr.snyder@yahoo.co.uk:

Does someone know if the (just 10.5, intel and ppc-) _mark_split runtime-error is still present in gnucash 2.2.3?

It is .... but with a patched SplitP.h gnucash-2.2.3 seems to build and work fine.

comment:22 Changed 17 years ago by mas@…

Owner: changed from mas@… to macports-tickets@…

comment:23 in reply to:  11 Changed 17 years ago by mp@…

Replying to macosforge.lbn@spamgourmet.com:

I don't have access to a 10.5 machine, so I haven't tested on and can't speak to stability/issues on 10.5.

I'm uploading new patches for the gnucash and guile16 Portfiles based on those from comment 11. These work for me on 10.5

The guile16 patch fixes the problems with the error missing "/opt/local/lib/libguile16.ltdl.la". The gnucash patch now references the SplitP.h patch from petr.snyder@… (comment 18). I'll also attach the SplitP.h patch which needs to go in the "gnucash/files" port directory.

I've been running gnucash for about a week now with no crashes at all. Here's the routine.

  1. Patch the gnucash and guile16 Portfiles with my updated patches.
  2. Download patch-configure.in into gnucash/files port directory
  3. Download patch-SplitP.h.diff into gnucash/files port directory
`sudo port install gnucash +without_hbci +without_docs +guile16`

Changed 17 years ago by mp@…

Attachment: patch-SplitP.h.diff added

Changed 17 years ago by mp@…

Attachment: Portfile-gnucash.2.diff added

Changed 17 years ago by mp@…

Attachment: Portfile-guile16.2.diff added

comment:24 Changed 17 years ago by mp@…

Oops - my patch for gnucash didn't work. Is it possible to delete attachments?

I've now made a new ticket for the guile16 issues at #14296 with a revised patch. Please use this.

I've also made a new ticket to update gnucash to version 2.2.3 at #14297 with all the patches that are needed.

So the steps to install gnucash successfully:

  1. Patch the guile16 Portfile with the patch at ticket #14296
  2. Patch the gnucash Portfile with the patch at ticket #14297
  3. Copy the two other patches at ticket #14297 into the gnucash/files port directory
  4. I have only tested with sudo port install gnucash +without_hbci which works fine. If the aqbanking port installs correctly then sudo port install gnucash should also work.

comment:25 Changed 17 years ago by reiffert@…

Resolution: fixed
Status: newclosed

Gnucash 2.2.4 made it into svn in r35110. Please reproduce your error on this version and *open a new ticket* if required. Please add detailed information on how to reproduce it. There have also been patches for guile16 and various other ports recently.

comment:26 Changed 16 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.