This is vmsreadme.txt in view mode; [Download] [Up]
This is the info file for inclusion with the VMS port of TCSH.
----
System Requirements:
o VAX running VMS version V5.5 or above.
o VMS/Posix installed and configured with a container file system.
(^ comes free with the operating system)
o An /etc/termcap file that contains entries for vtxxx_series
o A friendly system manager.
o About an hour. (VS 4000/60)
----
Installation:
1. untar the file.
2. copy the config.vms file from config/ to the directory that
holds the tcsh source, rename to be config.h
3. rename Makefile.vms to be Makefile
4. Type
psx> make
5. Wait for an hour.
a) The construction of tc.const.h will take about 20 mins
on a vs4000/60
b) Read the man pages.(see note about man pages)
6) If you want to install TCSH as the default shell instead of ksh add the
following line to POSIX$USER_PARAMS.DAT
SHELL /usr/local/bin/tcsh
You may not include flags on the command line. This line is used
to create the executive mode logical name POSIX$SHELL.
In creating this logical name flags are ignored, so a login shell
is not possible.
7) TCSH-VMS will use the file /etc/csh.cshrc to provide the equivalent
of a sys$sylogin.com, suggested contents are below.
You will probably need to make this file using the SYSTEM account.
----
Notes:
This is not a definition of the capabilities of VMS/Posix.
Refer to `Guide to using VMS/Posix' etc...
VMS/Posix is the OPEN part of OPEN/VMS. It consists of three
main sections.
- The POSIX Libraries, which are system interfaces
adhering to the Callable Interface standards IEEE 1003.1,
1003.1a and 1003.2 and most of 1003.4 (real time).
- The POSIX Commands and utilities, 1003.2 (Classic Utilities)
some of the Software Development utilities.
- The VMS/Posix Shell, a Korn Shell variant.
TCSH has been ported to be POSIX Conformant. The one thing preventing
`Strict POSIX Conformance' is the use of Termcap routines that
require the presence of a /dev/termcap. Once code has been written
to use the library routines tcgetattr etc, the source will be
strictly POSIX conformant.
TCSH has certain features missing or disabled.
- UTMP facilities, this is related to most of the
inter-user stuff like watchlog.
- Resource limit access.
- Access to passwd tag in the passwd structure.
(use DCL for user admin functions)
- Other items may be missing or behave in an unexpected
manner. It has not been possible to test and debug all the
features of TCSH on VMS as yet.
----
Features and known bugs:
1) The VMS/Posix MAN command is a drop through to DCL help.
It seems to assume it will always be running from ksh. To use define
the alias
alias man '/bin/sh /bin/man \!*'
in your /etc/csh.cshrc
This fixes the problem.
2) There is a problem with the way TCSH initialises the current working
directory ($cwd, environment variable PWD)
Put the command
cd
in /etc/csh.cshrc as a workaround.
For the curious;
The version of getwd i use is the subroutine in TCSH rather than the
getcwd from the posix library.
The tcsh version xgetcwd in tc.os.c will search up the tree, by
stat()'ing and opening the parent directory, to build up the CWD path.
All works well until it hits the root directory. At this point it is
usually looking for a file with st_ino =0 and st_dev = 0, (the default
numbers assigned to the mount point of a VMS filesystem in the '/'
directory.) which is the first file it comes across. This, due to the
way UCX starts is /vms.
eg. I am in /u1/atp/fred.
xgetwd looks at '.' gets the st_ino and st_dev. goes to '..' opens
it and gets the name associated with inode and dev from before. CWD now
holds "fred". I now repeat the process one layer up. CWD now becomes
"atp/fred". The problems now start with the stat of '.' at this point.
stat() returns a st_ino and st_dev of 0. - i don't know why. When i open
'..' and read it i get the first name that matches an inode of '0' and
a device of '0' - which is /vms. now my CWD is set to be "/vms/atp/fred"
This is a problem, as /vms/atp/fred does not exist. That is my understanding
of the problem.
This throws the history mechanism, terminal handling, and man pages
for some reason. I worked around it by putting a
'cd' in my /etc/csh.cshrc which effectively copies the contents of $HOME
into $PWD.
3) termcap problem
If the value of term is not a recognised one (vt200_series, vt300_series)
then shell utilities like 'more' will complain. Unless your /etc/termcap
has entries for vt300_series, you will not be able to use %U %B et al, and
anything else that uses the termcap entries.
4) Line editing problem
Occasionally the line editing becomes corrupted. This is probably due
to a conflict in the use of both termios and termcap routines.
5) TCSH expects to be installed in /usr/local/bin - you may change this
in Makefile.vms or create /usr/local/bin.
6) If you have problems with reading things on the path - substitute
/bin/ for /bin in pathnames.h - VMS/Posix uses symbolic links for all
the top level directories.
7) If the shell complains that a command is not found check to see if
there are multiple version numbers in /bin/ eg. tar..1 tar..2 . if
there are, get the sysmanager to purge this directory.
---------
suggested csh.cshrc
---
# model csh.cshrc
alias man '/bin/sh /bin/man \!*'
cd
set history 50
stty sane
#end
---
I read vmsnet.vms-posix, It is a low volume newsgroup, so i tend to
read all articles, if E-mail fails to work for you get me there.
I Release the work I have done in porting this to VMS/Posix into the
public domain under the conditions imposed by the headers contained
in the source code. I accept no Liability either express or implied
for any damage or loss arising from the use or failure of this code.
Have a nice day.
Andy Phillips
Mullard Space Science Lab. 92/10/07
Holmbury St. Mary. 19709::atp
Surrey. atp@uk.ac.ucl.mssl
England.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.