Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: [The Gimp] clashes with REBOL on Windows 2000

From: brian:hawley at: 6-May-2004 23:58

Hi Ari! You've run into a problem that tripped me up for a while: REBOL doesn't put its data in the proper places on Windows 2000 and above - in other words, it is not "logo-compliant". REBOL's default install puts its program file and data files in a directory under Program Files. Since Windows security settings prevent a standard user from writing to these program directories, only a "Power User" or administrator has sufficient permissions to use REBOL/View by default. Fortunately you can hack a REBOL/View install manually to make it mostly logo-compliant, and thus allow it to be used by ordinary users without being a security risk. Here's a quick overview, assuming a standard install of Windows 2000 or above and REBOL/View 1.2.1 to 1.2.8 (please bear with me if you know some of this, I'm trying to make it useful to others that have the same problem): First, let REBOL/View install itself into some central place such as "C:\Program Files\REBOL\View". This will set up most of the global settings in the registry and some of the local ones. Close REBOL. REBOL may have downloaded some files to this directory for the desktop - if this is a new install, you can delete everything but the program files. Next you need to create the local user settings. These are stored in the user profile directory, sort of like a user's home directory on Unix. Windows 2000 and above store their profiles in directories under "C:\Documents and Settings", earlier versions of NT under C:\WINNT\Profiles. If you have trouble finding your profile an environment variable named USERPROFILE points to it automatically - this is like the Unix variable HOME, which is not defined by default on Windows. The Gimp uses USERPROFILE on Windows by default. Now, you'll need to repeat this for each user that already has a user profile created. Find the "Application Data" folder in the profile directory. It will be hidden. If you aren't sure where it is, there is an environment variable APPDATA that points to it. Create a REBOL subdirectory in that folder. That will be your REBOL home folder - make a note of where it is, it's time to hack the registry. Open a registry editor and find the key: HKEY_CURRENT_USER\Software\REBOL\View Under that key there will be a string value named HOME, which will contain a REBOL-format directory name without the % - change that value to match the REBOL home folder you created earlier, for example: /C/Documents and Settings/Ari/Application Data/REBOL/ You should be set now. When you start REBOL now it will start the program in "C:\Program Files\REBOL\View" and use your REBOL home as its working directory. If you moved over your data to that folder it should work right away; otherwise REBOL will download the files it needs. Now here comes the tricky part. You may have noticed that in under that same registry key there is another string value named Product. That key is the marker that REBOL uses to determine whether it is installed and current. The problem is that this key is in absolutely the wrong place - it should be under HKEY_LOCAL_MACHINE, as it is a global setting, and treated as such by REBOL. It is a global setting because REBOL associates .r files with the REBOL executable, something that can only be done globally, and also registers an uninstaller with the Add/Remove Programs control panel (which can be done in a per-user way but they don't). Since this setting is under HKEY_CURRENT_USER every user that runs REBOL for the first time triggers a reinstall, which then messes up the registry settings for everyone. This key can't be moved to the right place either, because REBOL looks for it where it is. This is a long-standing REBOL bug. All this means that you need to create REBOL directories and REBOL\View registry keys for every user on the system and for the default user as well, just to make sure that none of the other users can mess up anyone's settings by accident. If you are an administrator you can find the registry settings in the subkeys of HKEY_USERS that don't end in _Classes - just replicate the Software\REBOL\View settings, adjusting HOME accordingly, and don't forget Product. The default user's profile folder is the hidden Default User folder in the profiles directory. Be sure to create a REBOL folder in its "Application Data" as well, so it will be copied to new user profiles. While you're at it, you might as well get rid of the uninstall reference to REBOL in the registry too - it doesn't do much and isn't secured against use by Users. REBOL is easy to uninstall manually anyway, except the plugin version. I hope this info helps. It should even be enough to aid in the creation of a installer script if anyone is so inclined. This method will even work on Windows 9x, but you'll need to follow the registry key versions of the environment variables that 9x doesn't define - ask me for details if you need to. I'd be quite happy to rewrite the REBOL built-in installer script if anyone would be interested. Good luck, Ari! Brian Hawley At 04:30 PM 5/2/04 +0200, Arie van Wingerden wrote: