Hi,

On 7 Jan 2002 at 3:16, Phil Tomson wrote:

> >
> >Just earlier tonight I installed enough of cygwin to find that the ruby
> >intallation needed certain windows registry keys set to allow the cygwin
> >file system to operate.    
> 
> Can you post more details about your findings?
> 
> Phil
> 

Sorry it took me this long to get back with this, the 
day job gets in the way of the fun stuff.

I have found that the dependancy of the system() call in the Ruby
installed using the ruby165-0.exe installation package is a
combination of issues.  

First the cygwin1.dll depends on a mount table that is stored in the
Windows registry to map from it's POSIX file system to the underlying
Windows disks. This mount table is found in two places in the
registry, one tree under HKEY_CURRENT_USER\Software\Cygnus Solutions
and another under HKEY_LOCAL_MACHINE\Software\Cygnus Solutions.  Most
of the mount table entries are automatically created by the
cygwin1.dll if it starts and does not find a set of existing entries.
HOWEVER, the entries that actually in the mount table to the Windows
disks is not automatically created.  The missing ones are created by
the cygwin installation routine.  I list the registry entries and mark
the missing entries below.

Among the missing entries, the important on is the one that allows the
cygwin1.dll find it's /usr/bin (c:/cygwin/bin Windows) directory.  It
is important because cygwin1.dll is using the env.exe program in
C:/cygwin/bin.  Apparently, env.exe is used to locate the system
command that the system() call is asked to execute.

The moral?  We, er, uh, non-Linux folks can all look forward to the
day the native Windows Ruby installation package becomes available.
Maybe we can all try to help that day along.

I appologize for the long post.

John

Windows 98 Registry excerpts:

HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
  (default) = `/cygdrive'
  cygdrive flags = 0x00000022
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\00
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\01

    . . .  # 26 similar lines removed

HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\1C
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\1D



HKEY_LOCAL_MACHINE\Software\Cygnus Solutions
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin\mounts v2

## the following entries are missing if cygwin is not installed 

HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = `C:/cygwin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = `C:/cygwin/bin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = `C:/cygwin/lib'
  flags = 0x0000000a

## end of missing entries 

HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\Cygwin\Program Options
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL setup
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\00
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\01

    . . .  # 26 similar lines removed

HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\1C
HKEY_LOCAL_MACHINE\Software\Cygnus Solutions\CYGWIN.DLL 
setup\b15.0\mounts\1D