Can't find slib?

Jeff Kletsky gnucash at allycomm.com
Thu Dec 30 15:18:39 EST 2010


Some hints on Slackware at 
http://www.linuxquestions.org/questions/slackware-14/gnucash-guile-slib-dont-get-along-848185/

    Look in the directory /var/log/scripts for the file starting with
    slib. What happens if you run the first line in that file as root on
    your machine?

    On mine (Slackware64 13.1), that file (slib-3b2-x86_64-2_SBo)
    contains...

    Code:

    #!/bin/sh

    guile -q -s /usr/doc/slib-3b2/guile-slibcat.script

    ( cd usr/lib64/slib ; rm -rf mklibcat )
    ( cd usr/lib64/slib ; ln -sf mklibcat.scm mklibcat )
    ( cd usr/share/guile ; rm -rf slib )
    ( cd usr/share/guile ; ln -sf ../../lib64/slib slib )
    ( cd usr/share ; rm -rf slib )
    ( cd usr/share ; ln -sf ../lib64/slib slib )

    ...and I would want you to run the equivalent of the...
    Code:

    guile -q -s /usr/doc/slib-3b2/guile-slibcat.script


I haven't found the equivalent on Ubuntu 10.10 yet (or even the 
guile-slibcat.script file).

It looks like this kind of thing has been a problem going back as far as 
2005, if not earlier http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=328243

The closest I can find under Ubuntu 10.10 is

jeff at fx:/var/lib/dpkg/info$ cat slib.postinst
#!/bin/sh

set -e

# OK.  This is bad because it really should be in the guile config or
# in some emacs-common sort of package.  Now we conditionally run it.
# one of these probably shouldn't exist, but don't know which and
# probably should support the older.

if [ -x /usr/sbin/guile1.4-slibconfig ] ; then
     echo guile1.4-slibconfig
     guile1.4-slibconfig
fi

if [ -x /usr/bin/guile-1.6 -a -e /usr/share/guile/1.6/slib ] ; then
     rm -f /usr/share/guile/1.6/slibcat

     guile-1.6 -c "(use-modules (ice-9 slib)) (require 'new-catalog)"

     if [ -e /usr/share/guile/1.6/slibcat ] ; then
       chmod 644 /usr/share/guile/1.6/slibcat
     fi
fi

if [ -x /usr/bin/scm ] ; then
     rm -f /usr/lib/scm/slibcat
     scm -c "(require 'new-catalog)"

     if [ -e /usr/lib/scm/slibcat ] ; then
       chmod 644 /usr/lib/scm/slibcat
     fi
fi

Running this as root doesn't help --HOWEVER -- this works

$ *sudo ln -s  /usr/share/slib /usr/share/guile/slib*  # This symlink 
still appears to be needed

$ guile --version
Guile 1.8.7
Copyright (c) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 
2006, 2007, 2008 Free Software Foundation
Guile may be distributed under the terms of the GNU General Public Licence;
certain other uses are permitted as well.  For details, see the file
`COPYING', which is included in the Guile distribution.
There is no warranty, to the extent permitted by law.

$ guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"   # Have 
to be root, apparently
ERROR: In procedure open-file:
ERROR: Permission denied: "/usr/share/guile/1.8/slibcat"

$ *sudo guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"*

$ ls -l /usr/share/guile/1.8/slibcat
-rw-r--r-- 1 root root 8682 2010-12-30 12:09 
/usr/share/guile/1.8/slibcat  # Already 644, so no chmod needed in this case

$ guile -c "(use-modules (ice-9 slib)) (require 'printf)"
(works)






Jeff


On 12/12/2010 07:46 AM, Donald Allen wrote:
> On Sun, Dec 12, 2010 at 10:27 AM, Derek Atkins<derek at ihtfp.com>  wrote:
>
>> On Sat, December 11, 2010 11:32 pm, Donald Allen wrote:
>>>>   Normally your distribution would do this for you, but as you're running
>>>> Slackware all bets are off and I'm afraid you're on your own.
>>>   If you were
>>>> running Fedora or Ubuntu it would "just work".
>>>>
>>> [...]


More information about the gnucash-devel mailing list