#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)
Change History (33)
comment:1 Changed 17 years ago by jmpalacios (Juan Manuel Palacios)
Milestone: | → Port Bugs |
---|
comment:2 follow-up: 17 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from macports-dev@… to mas@… |
---|
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 follow-up: 8 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 follow-up: 9 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 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 follow-ups: 16 23 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:
- guile16 Portfile
- gnucash Portfile
- 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:
`sudo port uninstall slib-guile16 guile16`
- Applied the Portfile patch to guile16 port
- Applied the Portfile patch to gnucash
- Copied the patch-configure.in file into gnucash/files port directory
`sudo port install slib-guile16`
`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 follow-up: 15 Changed 17 years ago by nigel@…
I have also been trying to install gnucash 2.2.1 on 10.5.1 intel.
- I needed to modify aqbanking Portfile ticket #13750
- 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
- It stops on py25-hashlib so just try installing evince by itself?
sudo port install evince
sudo port install gnucash
- Various modules had to be forced because of incompatibility with perl
- 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
- 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 follow-up: 18 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 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 follow-up: 19 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:
- guile16 Portfile
- 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 follow-up: 21 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 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 follow-up: 20 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:
- guile16 Portfile
- 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 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 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 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.
- Patch the gnucash and guile16 Portfiles with my updated patches.
- Download patch-configure.in into gnucash/files port directory
- 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:
- Patch the guile16 Portfile with the patch at ticket #14296
- Patch the gnucash Portfile with the patch at ticket #14297
- Copy the two other patches at ticket #14297 into the gnucash/files port directory
- I have only tested with
sudo port install gnucash +without_hbci
which works fine. If the aqbanking port installs correctly thensudo port install gnucash
should also work.
comment:25 Changed 17 years ago by reiffert@…
Resolution: | → fixed |
---|---|
Status: | new → closed |
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.
Assigning to gnucash maintainer.