Menu

#2279 [Windows]GUILE_LOAD_PATH is appended to the home directory of the non-adminstrative user instead of either append it to the directory where guile.exe is started or using it as an absolute path

Accepted
nobody
None
Other
2019-02-03
2012-02-03
Anonymous
No

Originally created by: *anonymous

Originally created by: ma...@gregoriana.sk

Reported by Helge Kruse
as "Unable to find file "ice-9/boot-9.scm" in load path"
http://lists.gnu.org/archive/html/bug-lilypond/2012-01/msg01273.html
and
http://lists.gnu.org/archive/html/bug-lilypond/2012-02/msg00075.html

When I run guile.exe as administrator it succeeds. But running guile.exe as a user without administrative rights it fails to load boot-9.scm.

You can see here what happens when the GUILE_LOAD_PATH is set to "SHARE\GUILE\1.8" This is intentionally in capital letters. The windows O/S doesn't care but you can see, when this variable has been used.

Administrator:
CreateFile C:\Program Files (x86)\LilyPond\usr\share\guile\1.8 --> SUCCESS

There are some additional file open operations but you can see, that the variable GUILE_LOAD_PATH has *not* been used to resolve the valid load path.

Non-adminstrative user (Helge):
CreateFile C:\Users\Helge\SHARE\GUILE\1.8\ --> PATH NOT FOUND
CreateFile C:\usr\share\guile\site\ --> PATH NOT FOUND
CreateFile C:\usr\share\guile\1.8\ --> PATH NOT FOUND
CreateFile C:\usr\share\guile\ --> PATH NOT FOUND
CreateFile C:\Users\Helge\share\guile\1.8\ --> PATH NOT FOUND
CreateFile C:\Users\Helge\SHARE\GUILE\1.8\ice-9\ --> PATH NOT FOUND

So the bug is: GUILE_LOAD_PATH is appended to the home directory of the non-adminstrative user instead of either append it to the directory where guile.exe is started or using it as an absolute path.

Workaround: When you set GUILE_LOAD_PATH to the following value, you can run guile.exe as non-administrative user:

..\..\PROGRAM FILES (x86)\LILYPOND\USR\SHARE\GUILE\1.8
(must not be surrounded by "")

Discussion

  • Federico Bruni

    Federico Bruni - 2018-07-06

    I wonder if this bug is still valid.
    IIUC, Helge was not able to run lilypond scheme-sandbox.
    I can with lilypond 2.19.28 on Windows Seven. Here's the command I run in PowerShell:

    PS C:\Users\fede> lilypond scheme-sandbox
    GNU LilyPond 2.19.28
    Elaborazione di «C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/ly/scheme-sandbox.ly»
    Analisi...
    guile>
    

    GUILE_LOAD_PATH does not seem to be set:

    PS C:\Users\fede>     Get-ChildItem Env:GUILE_LOAD_PATH
    Get-ChildItem : Impossibile trovare il percorso 'GUILE_LOAD_PATH' perché non esiste.
    In riga:1 car:18
    +     Get-ChildItem <<<<  Env:GUILE_LOAD_PATH
        + CategoryInfo          : ObjectNotFound: (GUILE_LOAD_PATH:String) [Get-ChildItem], ItemNotFoundException
        + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
    
     
  • Federico Bruni

    Federico Bruni - 2019-02-03

    I've just tried the command prompt as a regular user.
    I can run guile --version if I use the full path (no need to set any variable):

    >C:\Programmi\LilyPond\usr\bin\guile --version
    Guile 1.8.7
    

    Also scheme-sandbox works:

    >C:\Programmi\LilyPond\usr\bin\lilypond scheme-sandbox
    GNU LilyPond 2.21.0
    Elaborazione di «C:/Programmi/LilyPond/usr/share/lilypond/current/ly/scheme-sandbox.ly»
    Analisi...
    guile>
    
     
MongoDB Logo MongoDB