remove defunct document

This commit is contained in:
David Rose 2008-05-28 18:35:11 +00:00
parent 55542dd5b2
commit 6342d4abe7

View File

@ -1,745 +0,0 @@
DOUBLE-SECRET-WARNING: This document is depreciated as of Mar 22, 2006. All
further updates will be at the following wiki:
http://aspen.online.disney.com/mediawiki/index.php/How_to_install_Panda_on_Windows
WARNING: This document is an internal VR Studio document describing
how to set up Panda on a new PC using our internal development
environment. It is not useful for programmers who are not within the
VR Studio firewall.
If you are looking for documentation on installing Panda in the rest
of the world, see INSTALL.txt in this directory.
---------------------------------------
HOW TO INSTALL PANDA3D ON WINXP/WIN2000
---------------------------------------
*********************************************************************
NOTES
*********************************************************************
- Lines preceeded by ">" are instructions to be typed on the command
line.
- Ensure your computer's date is set correctly, or else the
compilation scripts may have problems later.
- Make sure your machine has enough disk space - I'd start with the
largest open space on any of your partitions.
You will have the fewest headaches if you choose C:\ for everything.
*********************************************************************
Step 1: Map network drive to build tools drive
*********************************************************************
- Right click on Network Places, choose Map Network Drive
- Map Network Drive P: to \\mover\vol02\dimbo\usr2\panda (using your
unix password)
You also can do this from cmd.exe using
> net use p: \\mover\vol02\dimbo\usr2\panda /persistent:yes
- Select 'Reconnect drive at startup'
- If this doesn't work, you can install the build tools from CD
- Run 'regedit P:\tabs.reg' to enable tab-filename-completion.
You must exit and restart the cmd.exe shell to enable this, since
the registry is only read at cmd.exe startup.
*********************************************************************
Step 2: Update OS software
*********************************************************************
- On both WinXP and Win2000, I recommend you go to
http://windowsupdate.microsoft.com/, click on 'Product Updates'
(installing the Product Update ActiveX control), and install any
patches labeled 'Critical Updates' as well as any updated sound,
network, and motherboard drivers. Video card manufacturers will
usually have newer drivers than the WindowsUpdate site, however, so
go to the manufacturer's website to check for win2000/winXP
drivers, especially on win2000, since the original win2k CD drivers
are most likely obsolete.
- Install the latest DX9 runtime (unless you know you already have a
more current DX9 runtime installed) by running:
> P:\dx9\directx_feb2006_redist.exe
This is a self-extracting archive; you must then run the install
program that it produces.
*********************************************************************
Step 3: Install Visual C++
*********************************************************************
- MS Visual C++ requires MS Internet Information Server so this must
be installed prior to installing MSVC.
- Click on Start->Settings->Control Panel
- Click on Add/Remove Programs
- On the left side of the window, select Add/Remove Windows Components
- Check the box next to Internet Information Services (IIS)
- Click the Details button
- Check FrontPage 2000 Server Extensions
- Click OK
- Click Next
- Click Finish when done
- Run P:\msvs7_1\VS\SETUP.EXE, or install from the MSDN
'Visual Studio.NET 2003' CD. Click on 'Windows Component Update'
(if it is highlighted, else click '2'). Click 'Continue'
(Selecting 'Do not use this machine to host web projects').
- After installing components, you are ready to install VC7.1 in .NET
setup Step 2. Enter this step and enter "VR Studio" for the username.
On the 'Select items to install page', you need uncheck things to
avoid wasting gigs of extra space and install time.
- Uncheck everything except for:
- Language Tools->Visual C++
- Server Components->Remote Debugger->Native Remote Debugger
And if you want:
- Documentation (this takes a gig, and is only a slight
update if you already have MSDN installed locally.
You will want to uninstall any separately-installed
MSDN docs if you get this.)
*********************************************************************
Step 4: Install Cygwin (v1.5.10 or above should work)
*********************************************************************
- Latest version currently is 1.5.18-1 (as of Dec 20, 2005)
- Go to http://cygwin.com and click on "install cygwin now". Choose
"install from internet."
- The most reliable download server is http://mirrors.rcn.net.
Another server is http://sigunix.cwrv.edu.
- Make sure that the following packages are selected for installation:
- Under Archive : zip, unzip
- Under Devel packages : bison, CVS, make, flex
- Under Interpreters : gawk, perl (see note below)
- Under Network : openssh, openssl
- Under Shells : ash, bash, tcsh
- Under Text : more (or less)
- You can also install other programs (like vi) if you want.
To rotate through the possible installation options, left-click on
the programs of your choice.
- DO NOT INSTALL the following packages (change the Setting to
"SKIP"):
- emacs/xemacs, we have our own emacs (see Step 10)
- The Interpreter->python package
- Remove X-windows packages to make download smaller.
- There are many subpackages that are obviously not needed
(e.g. Mail, Doc, Text, Games) that you can skip if you like.
- Create a desktop shortcut or Start Menu item for
c:\cygwin\bin\tcsh.exe and use it in the future.
Our ctattach utilities require the use of "tcsh", rather than the
default "bash" shell. To make things really easy, edit
C:\Cygwin\cygwin.bat, change "bash --login -i" to "tcsh -i", this
will cause tcsh to be the default shell when you start Cygwin
command prompt/shell.
*********************************************************************
Step 5: Create your HOME directory
*********************************************************************
- Add C:\Cygwin\bin to the $path environment variable in the registry
to avoid errors (sed: Command not found) when executing the file
complete.tcsh (in C:\Cygwin\etc\profile.d) on startup
- Note: You must be logged into an account with Administrator access
- Select "Start Menu->Control Panel"
- Select "System" icon.
- Select "Advanced->Environment" button.
- Scroll down to the Path environment variable in the System
variables section, select it and click the Edit button
- Add "C:\cygwin\bin" to the end of the semicolon delimited list
- Click OK - OK - OK to exit
- Launch the Cygwin command prompt/shell (tcsh) using the icon set up
in Step 4
- Create a HOME directory:
> mkdir /home/<login>
Where <login> is the name you use to login to your Windows
machine. Note that some people have created their home
directories under /usr/ instead of /home/; while this works, it is
not a standard Unix convention.
Note: In Windows this directory will be the equivalent of:
C:\cygwin\home\<login>
- Set the $HOME environment variable in the Registry:
- Note: You must be logged into an account with Administrator access
- Select "Start Menu->Control Panel"
- Select "System" icon.
- Select "Advanced->Environment" button.
- Create the variable "HOME" with the value:
"c:\cygwin\home\<login>".
- Click OK - OK - OK to exit (you must exit for the change to take
effect)
- Now open a new shell so the registry is read by the shell to get
the changes.
---------------------------------------------------------------------
NOTE:
We've seen a problem where we can't source ~/.cshrc if the
<login> in your HOME directory does not match the user name
%USERNAME% windows env var. To be safe, be sure your <login>
matches your Windows login as part of your HOME directory name.
---------------------------------------------------------------------
*********************************************************************
Step 6: Set up access to the CVS repositories:
*********************************************************************
In order to set up the Cygwin environment, you will need to download a local
copy of a couple of CVS repositories. In order to do that, you will need
access to the VR fileserver, mover, and SourceForge.
- For access to mover, contact Chris Brunner, James Healy, or Kirk Waingrow.
- Now for SourceForge choose either A (commit) or B (anonymous) access do one
of the following. We recommend anonymous access unless you will be checking
code into one of the SourceForge trees (dtool, panda, direct, pandatool).
A. SOURCEFORGE DEVELOPER (WITH COMMIT) ACCESS
1. Setup an account with SourceForge at
http://sourceforge.net/account/register.php
Try to use the same username used your cygwin setup. If you
are unable to do so just make sure you edit your .cshrc file
in Step 7a to reflect this for the SFROOT variable.
Tell somebody like Dave Schuyler or David Rose to add your
new SourceForge username to the list of Panda3D developers.
2. Setup ssh access cvs.sourceforge.net
- If you have not generated a key before on this machine,
generate a dsa key now by opening a Cygwin window and
entering:
> ssh-keygen -t dsa
Just press enter if prompted for password.
If the above does not put a file in ~/.ssh, check that your
/etc/passwd file has an entry for your username and that it
points to the correct home directory for you
(e.g. /home/<username> ).
- Register your generated ssh public key (id_dsa.pub) at
https://sourceforge.net/account/editsshkeys.php.
B. ANONYMOUS CVS (READ-ONLY ACCESS) FROM SOURCEFORGE
1. In Step 7a (below), Check that your .cshrc file has the
SFROOT variable set to be something like this
> setenv SFROOT :pserver:anonymous@cvs.sourceforge.net:/cvsroot/panda3d
2. Before running any of the "cvs -d $SFROOT" commands, do the
following:
> cvs -d $SFROOT login
Just press Enter when asked for a password.
*********************************************************************
Step 7a: Set up the Cygwin environment:
*********************************************************************
- Open a new shell
- Create personal trees directory:
> cd ~
> mkdir player
> cd ~/player
- Grab a local copy of wintools
> cd ~/player
> cvs -d :pserver:<your-mover-username>@mover:/cvs login
> cvs -d :pserver:<your-mover-username>@mover:/cvs co wintools
- Copy the config files from your personal wintools:
> cd ~/player/wintools/panda
> cp .cshrc .emacs Config.pp Config.prc ~
- Close and re-open your shell. The .cshrc file you just copied in should
load up some variables needed to check out more trees.
- Check out a fresh dtool:
> cd ~/player
> wintools/built/bin/checkout_built.sh dtool
- Close and re-open your shell. You should now be set up to reference your
personal dtool and personal wintools, that you just checked out above.
- Make sure the contents of .cshrc are correct for your setup. In
particular, make sure the definition for PANDA_ROOT matches the
directory you have installed Cygwin to (normally C:\Cygwin),
and that CVSROOT is correct for your CVS login (if $USERNAME
is not the same as your mover account name, edit the variable as
necessary). Also, check the SFROOT variable. It should be
either:
COMMIT:
:ext:<your-sf-username>@cvs.sourceforge.net:/cvsroot/panda3d
or
ANONYMOUS:
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/panda3d
*********************************************************************
Step 7b: Set up the Cygwin environment (automated part):
*********************************************************************
- All of the commands below have been collected in
$WINTOOLS\etc\setup2.csh. To do all the Cygwin
steps below automatically, from the tcsh prompt do:
> cd $WINTOOLS/etc
> source setup2.csh
---------------------------------------------------------------------
CAUTION: setup2.csh:
Some of the drives may need to be mapped manually from windows. If you
have a cdrom or some other drive mapped to the following drives,
you need to unmount those and map to some other drives. See the
"Connect the network drives" segment below
---------------------------------------------------------------------
These are the steps setup2.csh performs (so you don't have to):
- Make the following directories (don't worry if they already exist)
> mkdir /bin /etc/ /tmp /usr
> mkdir /c /f /g /h /i /j /p
> mkdir /usr/local /usr/local/bin /usr/local/etc
- Rename any cygwin-installed python.exe (if it exists) to avoid
conflicts with required VRSTUDIO-compiled python, which is
custom-built to load "sitecustomize.py" which sets up the
PYTHONPATH env-var for our panda environment:
> mv /bin/python.exe /bin/python-cygwin.exe
This is only necessary if you installed python while installing
Cygwin
- Create some links expected by the attach scripts, which look in
standard modern unix BSD-style places:
> ln -s /bin/tcsh /bin/csh
> ln -s /bin/perl /usr/local/bin/perl
> ln -s /bin/bash /usr/local/bin/bash
- Connect the network drives:
Note that any of your drive letters are already in use (by a
CD drive, or by some I.S. login-script-created drive), you simply
do a 'net use' to a different drive letter, then change the 'mount'
command to point the official '/[drivelet]' dir at the real drive
letter it's mounted to.
It is not necessary for cygwin's /p to point to the P: drive in
Windows.
> net use f: "\\mover\vol01\fat\usr2" /persistent:yes
> net use g: "\\mover\vol01\fat\bit" /persistent:yes
> net use h: "\\mover\vol02\dimbo\usr2" /persistent:yes
> net use i: "\\mover\vol01\fat\big" /persistent:yes
> net use p: "\\mover\vol02\dimbo\usr2\panda" /persistent:yes
The "net use" commands may require you to enter a password if
access is denied, in which case you can add the /USER:[username]
argument to net use and it will ask for a password.
See "net use /help" for more info.
The "Map Networked Drive" GUI option can be used instead of
"net use".
- Create cygwin mount directories. The purpose of this is to shorten
and simplify paths. Note the use of -b for the mounts to mapped
network drivers on remote machines. The /ms* mounts assume things
were installed in C:\Program Files:
> mount -s c:/ /c
> mount -s -b f:/ /f
> mount -s -b g:/ /g
> mount -s -b h:/ /h
> mount -s -b i:/ /i
> mount -s -b j:/ /j
> mount -s -b p:/ /p
If VC7.1 is installed:
> mkdir /msvc71
> mount -s C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003 /msvc71
If VC7 is installed:
> mkdir /msvc7
> mount -s C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET /msvc7
If VC6 is installed:
> mkdir /msvc98 /mscommon /mspsdk
> mount -s C:/Program\ Files/Microsoft\ Visual\ Studio/VC98 /msvc98
> mount -s C:/Program\ Files/Microsoft\ Visual\ Studio/Common /mscommon
> mount -s C:/Program\ Files/Microsoft\ Platform\ Sdk /mspsdk
If Intel C++ is installed:
> mkdir /intel /ia32
> mount -s C:/Program\ Files/Intel /intel
> mount -s C:/Program\ Files/Intel/Compiler60/IA32 /ia32
*********************************************************************
Step 8: Testing VC7.1 environment in shell
*********************************************************************
- After finishing this process, make sure you are using VC7.1 in your
shell by typing 'cl' at the prompt. If you have VC7.1 you will see:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
If you have VC7, you will see:
Microsoft (R)32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86
Copyright (C) Microsoft Corporation 1984-2001.
- If this does not work, check your tcsh path to make sure it has
the .NET dirs in it, and make sure the cygwin softlink mount
point /msvc71 exists, and is not empty but points to the proper VC7
directory. Doing 'ls /msvc71' should give you something like
Common7/ Visual Studio SDKs/
EnterpriseFrameworks/ contents.htm
SDK/ readme.htm
Setup/ sqlserver/
Vc7/ toc.htm
Visual Studio .NET Enterprise Developer 2003 - English/
- If it does not, try running
> source $WINTOOLS/etc/setup2.csh
again to get it to do the cmd (ignore file-exists errors)
> mount -s C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003 /msvc7
This should create the softlink mount, or you can just run the
cmd manually yourself.
------------------------------------------------------------------------------
NOTE:
If you installed Microsoft's .NET Framework (from Windows Update, for
example) before installing Microsoft Visual Studio .NET 2003, you may
experience a problem when compiling C code. The short 8.3 file name
for the VC7.1 directory used by some configuration scripts is MICROS~1.NET.
If Microsoft's .NET Framework is installed first it will take MICROS~1.NET
as its 8.3 name and VC7.1 will be MICROS~2.NET. To correct this, move
both directories out of the Program Files directory, then move VC back
first, followed by .NET Framework. This should rename VC's 8.3 filename
to MICROS~1.NET.
------------------------------------------------------------------------------
*********************************************************************
Step 9: Copy files needed by attach scripts
*********************************************************************
- Run script to copy vspec files from $WINTOOLS to /usr/local/etc
> cd $WINTOOLS
> ./cp_vspec
To setup a new user in panda environment files:
- If you are setting up a new user, edit the *.vspec files in
/usr/local/etc to add the new username and path to the player tree
(starting with dtool.vspec, panda.vspec, direct.vspec, otp.vspec,
toontown.vspec, and ttpublish.vspec).
- (Optional) Update default values in vspec files. Edit appropriate
*.vspec files to specify which trees you wish to use as a default
(e.g. install, personal, or release)
*********************************************************************
Step 10: Install Bison
*********************************************************************
*** This step is no longer needed. Bison is installed correctly
by Cygwin. ***
*********************************************************************
Step 11: Install Emacs
*********************************************************************
- We use GNU emacs (21.3 currently) by default, other versions of
emacs may also work. Note: unlike xemacs.exe compiled for cygwin,
this emacs does not use Cygwin paths, so "/" represents the real
root (C:\, not "C:\Cygwin")).
- Copy the gzipped tarball to your local machine
> cp /p/emacs-21.3-fullbin-i386.tar.gz /c
- Ungzip, untar and install (This will install emacs into C:/emacs-21.3, do
not attempt to install it under a directory containing a space,
like "Program Files".)
> cd /c
> gzip -d emacs-21.3-fullbin-i386.tar.gz
> tar xvf emacs-21.3-fullbin-i386.tar
- Update environment variables (win2000/XP). Note: You should only
need to do this if you intend to invoke Emacs from a non-Cygwin
prompt. If you will always be using Cygwin, simply edit your
.cshrc file to add the following to your path there:
/c/emacs-21.3/bin
- Select "Start Menu->Control Panel"
- Select "System" icon.
- Select "Advanced->Environment" button.
- double click on the "Path" variable in the bottom pane
(system variables)
- add "C:\emacs-21.3\bin" to the end of the path (semicolon
separated)
- click ok - ok - ok to exit (you must exit for the change to take
effect)
*********************************************************************
Step 12: Check out other trees
*********************************************************************
There are three methods of checking out CVS repositories: pre-built,
source, and both. Python and Python-hybrid trees like dtool, otp,
toontown, and pirates always come with source, regardless. Built
trees are recommended in most cases, unless you will be doing development
in those trees. If you are using anonymous SourceForge access, first
do the following:
> cvs -d $SFROOT login
Press Enter when prompted for a password.
- Most programmers will want to check out the built versions of each
tree. This saves you from having to constantly compile new code.
To check out the built versions do the following sequence of
commands. The otp, toontown, and pirates trees will automatically
come with source code. If you want source for panda, direct,
pandatool, or any of the models trees, use the -s parameter,
e.g. checkout_built.sh -s panda.
> cd ~/player
> $WINTOOLS/built/bin/checkout_built.sh panda
> $WINTOOLS/built/bin/checkout_built.sh direct
> $WINTOOLS/built/bin/checkout_built.sh otp
> $WINTOOLS/built/bin/checkout_built.sh toontown
> $WINTOOLS/built/bin/checkout_built.sh pirates
> $WINTOOLS/built/bin/checkout_built.sh pandatool
> $WINTOOLS/built/bin/checkout_built.sh ttmodels
> $WINTOOLS/built/bin/checkout_built.sh pmockup
> $WINTOOLS/built/bin/checkout_built.sh pmodels
You can combine any or all of the above on one command, e.g.:
> cd ~/player
> $WINTOOLS/built/bin/checkout_built.sh panda direct otp toontown pirates pandatool ttmodels pmockup pmodels
- To check out just the source
> cd ~/player
> cvs -d $SFROOT co panda
> cvs -d $SFROOT co direct
> cvs co otp
> cvs co toontown
> cvs co pirates
> cvs co pandatool
> cvs co ttmodels
> cvs co pmockup
> cvs co pmodels
> cvs co otp_servers_built
*********************************************************************
Step 13: Building notes
*********************************************************************
- You need to initialize each tree after you have checked it out.
This requires running the cta command to attach to the tree, and
then cd-ing into the directory and running ppremake.
- If you checked out just the source of any of these trees, you will
also need to make install within that tree (and this will take
from a few minutes to a few days, depending on the tree). If you
used the checkout_built.sh script, then you won't need to do this.
*********************************************************************
Step 14: Initialize $PANDA
*********************************************************************
- Build panda
> cta panda personal
> cd $PANDA
> ppremake
- If you didn't use checkout_built.sh to get PANDA:
> make install
After every make (the first time a tree is built from scratch),
kill and reopen the tcsh window. If you later rebuild the tree
in-place, you will not need to kill and reopen the window, unless
you first completely blew away your source tree.
- You can now run "pview" to test the install and build - you should
see a window pop up with a triangle in it. To see the triangle with
a texture on it, you'll need to be in $PANDA/src/testbed/ when
you run "pview".
*********************************************************************
Step 15: Initialize $DIRECT
*********************************************************************
> cta panda personal
> cta direct personal
> cd $DIRECT
> ppremake
- If you didn't use checkout_built.sh to get DIRECT:
> make install
kill and reopen the tcsh window (the first time you build direct).
*********************************************************************
Step 16: Initialize $OTP
*********************************************************************
> cta panda personal
> cta direct personal
> cta otp personal
> cd $OTP
> ppremake
- If you didn't use checkout_built.sh to get OTP:
> make install
kill and reopen the tcsh window (the first time you build otp).
*********************************************************************
Step 17: Initialize $TOONTOWN and/or $PIRATES
*********************************************************************
> cta panda personal
> cta direct personal
> cta otp personal
> cta toontown (or pirates) personal
> cd $TOONTOWN (or $PIRATES)
> ppremake
- If you didn't use checkout_built.sh to get TOONTOWN or PIRATES:
> make install
kill and reopen the tcsh window (the first time you build toontown
and/or pirates).
*********************************************************************
Step 18: Initialize $PANDATOOL (needed for building models, running pstats, etc.)
*********************************************************************
> cta dtool personal
> cta panda personal
> cta direct personal
> cta pandatool personal
> cd $PANDATOOL
> ppremake
- If you didn't use checkout_built.sh to get PANDATOOL:
> make install
kill and reopen the tcsh window (the first time you build
pandatool).
*********************************************************************
Step 19: (Optional) Build $TTMODELS, $PMOCKUP, or $PMODELS
*********************************************************************
NOTE: You need to make sure you have a licensing solution for the various
modeling apps involved in building Toontown models (e.g. C:\FlexLM).
Be warned! Completely building one of these model trees from scratch
can take one to three days. We strongly recommend checking out the
prebuilt version using the checkout_built.sh script, described above.
However, if you will be responsible for adding new models to any of
the model trees, you'll need to have your own source tree to test your
additions.
> cta dtool personal
> cta panda personal
> cta direct personal
> cta otp personal
> cta pandatool personal
> cta toontown personal
> cta ttmodels personal
> cd $TTMODELS
> ppremake
> make install
or
> cta pirates personal
> cta pmockup personal
> cd $PMOCKUP
> ppremake
> make install
or
> cta pirates personal
> cta pmodels personal
> cd $PMODELS
> make-install.sh
*********************************************************************
Step 20: Generate Python Code
*********************************************************************
This program must be run at least once, after you build the C++
trees for the first time, or whenever you change your set of
attachments (for instance, changing from Toontown to Pirates). It
makes the currently-attached C++ code available to Python.
> genPyCode
*********************************************************************
Step 21: (Optional) Set up a local server
*********************************************************************
- Copy local.par.example to local.par:
> cd ~/player/otp_servers_built/windows_intel_32/bin
> cp local.par.example local.par
- Edit local.par and modify the file locations listed to the correct paths
(This may just involve changing "username" to your unix username)
- Edit local.par and uncomment one of the following lines corresponding
to the project being used:
ADDKEY=TOONTOWN_DEV
#ADDKEY=PIRATES_DEV
#ADDKEY=ALL_DEV
- To run the server, simply execute otp_server.exe. It would be best to
run this in its own window.
*********************************************************************
Step 22: (Optional/Example) Launch a local Toontown Server and Client
*********************************************************************
- Add the following lines to your Config.prc file in $HOME if they are
not already there.
account-old-auth 1
verify-ssl 0
dc-multiple-inheritance 1
want-otp-server 1
- To start the Toontown Uberdog server, first start up Python Emacs
> runPythonEmacs
- In Emacs launch a Python shell
> Alt-x (This will bring up an Emacs minibuffer line)
> py-shell
- From the Python command line type the following:
> from toontown.uberdog.Start import *
- This will start a Toontown uberdog server
- To start the Toontown AI server, start up another Python Emacs session
> runPythonEmacs
- In Emacs launch a Python shell
> Alt-x
> py-shell
- From the Python command line type the following:
> from toontown.ai.AIStart import *
- This will start a Toontown game (AI) server
- To start a client, you will need to open yet another Python Emacs session.
From the cygwin command prompt, type:
> runPythonEmacs
- In Emacs launch another Python shell as before
> Alt-x
> py-shell
- In this Python command prompt, enter:
> from toontown.toonbase.ToontownStart import *
- After the servers and the client have started up, the game should
prompt to create an account. After the account is created the
game will run as normal, but locally.
*************** When you get here, rejoice! ***************