Building GnuCash on Suse 10.0RC1

Rauch Christian info at rauch-webdesign.de
Thu Sep 22 09:19:03 EDT 2005


Rauch Christian schrieb:

> Hi List!
>
> I am currently trying to build gnucash on a suse 10.0RC1 box.
> Together with Christian Stimming on gnucash-de i already solved some
> problems with gcc4 (libofx, guppi,g-wrap) but now i am stuck with a
> error on guile I think.
> everything compiled fine, rpms were built (yes, I am trying to do this 
> with rpms because of reusing those after successfull building on my 
> testbox), but on starting gnucash on console, it only says:
> ERROR: unbound variable: with-load-pathname
>
> The only i found about this error was an email from Derek Atkins, that 
> this may be a error in Guile Installation.
>
> I am using the guile-package delivered with suse 10.0RC1, so i don't 
> think, this could be wrong.
>
> However, guile-version is 1.6.7-8 and is located in /usr.
>
> I built Guppi and g-wrap to be in /opt/gnome, perhaps this is the error.
>
> According to what i can read from ./configure and make, Guppi and 
> g-wrap are found, but i can not see an error regarding guile.
>
> Does anyone have an idea what the problem can be here?
>
> And no, i don't have any knowledge of C(++), Python, or anything other 
> except PHP ;-)
>
> thanks,
> Rauch Christian
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
>
>
Problem is solved!
Solution was posted by RBibrach on gnucash-de 
(https://lists.gnucash.org/pipermail/gnucash-de/2005-September/003442.html)
including an addendum for suse 10.0rc1 from me 
(https://lists.gnucash.org/pipermail/gnucash-de/2005-September/003443.html)

for non-german-speaking, people:

responsible for this behaviour is slib 3.a2 installed by suse10.0rc1.
the file guile.init has to be fixed (replacing in line 127 UNIX through unix
and in /guile/1.6/ice-9/slib.scm the following lines have to be added:

(define software-type
  (if (string<? (version) "1.6")
      (lambda () 'UNIX)
      (lambda () 'unix)))

(define (user-vicinity)
  (case (software-type)
    ((VMS)	"[.]")
    (else	"")))

(define vicinity:suffix?
  (let ((suffi
	 (case (software-type)
	   ((amiga)				'(#\: #\/))
	   ((macos thinkc)			'(#\:))
	   ((ms-dos windows atarist os/2)	'(#\\ #\/))
	   ((nosve)				'(#\: #\.))
	   ((unix coherent plan9)		'(#\/))
	   ((vms)				'(#\: #\]))
	   (else
	    (warn "require.scm" 'unknown 'software-type (software-type))
	    "/"))))
    (lambda (chr) (and (memv chr suffi) #t))))

(define (pathname->vicinity pathname)
  (let loop ((i (- (string-length pathname) 1)))
    (cond ((negative? i) "")
	  ((vicinity:suffix? (string-ref pathname i))
	   (substring pathname 0 (+ i 1)))
	  (else (loop (- i 1))))))

(define (program-vicinity)
  (define clp (current-load-port))
  (if clp
      (pathname->vicinity (port-filename clp))
      (slib:error 'program-vicinity " called; use slib:load to load")))

(define sub-vicinity
  (case (software-type)
    ((VMS) (lambda
	       (vic name)
	     (let ((l (string-length vic)))
	       (if (or (zero? (string-length vic))
		       (not (char=? #\] (string-ref vic (- l 1)))))
		   (string-append vic "[" name "]")
		   (string-append (substring vic 0 (- l 1))
				  "." name "]")))))
    (else (let ((*vicinity-suffix*
		 (case (software-type)
		   ((NOSVE) ".")
		   ((MACOS THINKC) ":")
		   ((MS-DOS WINDOWS ATARIST OS/2) "\\")
		   ((unix COHERENT PLAN9 AMIGA) "/"))))
	    (lambda (vic name)
	      (string-append vic name *vicinity-suffix*))))))

(define with-load-pathname
  (let ((exchange
	 (lambda (new)
	   (let ((old program-vicinity))
	     (set! program-vicinity new)
	     old))))
    (lambda (path thunk)
      (define old #f)
      (define vic (pathname->vicinity path))
      (dynamic-wind
	  (lambda () (set! old (exchange (lambda () vic))))
	  thunk
	  (lambda () (exchange old))))))

In Addition to this  (at least on my suse box), a symlink has to be set 
in /usr/share/guile/1.6/slib/mklibkat to
mklibkat.scm in the same directory.

The permissions for file /usr/share/guile/1.6/slibcat have to be set to 
read and write for all, instead of  -rw-r--r--.
Owner of this file is root:root per default, which i left untouched.

so far,
Rauch Christian



More information about the gnucash-devel mailing list