1 | This is the info file for inclusion with the VMS port of TCSH. |
---|
2 | |
---|
3 | ---- |
---|
4 | System Requirements: |
---|
5 | |
---|
6 | o VAX running VMS version V5.5 or above. |
---|
7 | |
---|
8 | o VMS/Posix installed and configured with a container file system. |
---|
9 | (^ comes free with the operating system) |
---|
10 | |
---|
11 | o An /etc/termcap file that contains entries for vtxxx_series |
---|
12 | |
---|
13 | o A friendly system manager. |
---|
14 | |
---|
15 | o About an hour. (VS 4000/60) |
---|
16 | |
---|
17 | ---- |
---|
18 | Installation: |
---|
19 | |
---|
20 | 1. untar the file. |
---|
21 | 2. copy the config.vms file from config/ to the directory that |
---|
22 | holds the tcsh source, rename to be config.h |
---|
23 | 3. rename Makefile.vms to be Makefile |
---|
24 | 4. Type |
---|
25 | psx> make |
---|
26 | 5. Wait for an hour. |
---|
27 | a) The construction of tc.const.h will take about 20 mins |
---|
28 | on a vs4000/60 |
---|
29 | b) Read the man pages.(see note about man pages) |
---|
30 | |
---|
31 | 6) If you want to install TCSH as the default shell instead of ksh add the |
---|
32 | following line to POSIX$USER_PARAMS.DAT |
---|
33 | |
---|
34 | SHELL /usr/local/bin/tcsh |
---|
35 | |
---|
36 | You may not include flags on the command line. This line is used |
---|
37 | to create the executive mode logical name POSIX$SHELL. |
---|
38 | In creating this logical name flags are ignored, so a login shell |
---|
39 | is not possible. |
---|
40 | |
---|
41 | 7) TCSH-VMS will use the file /etc/csh.cshrc to provide the equivalent |
---|
42 | of a sys$sylogin.com, suggested contents are below. |
---|
43 | You will probably need to make this file using the SYSTEM account. |
---|
44 | |
---|
45 | ---- |
---|
46 | Notes: |
---|
47 | |
---|
48 | This is not a definition of the capabilities of VMS/Posix. |
---|
49 | Refer to `Guide to using VMS/Posix' etc... |
---|
50 | |
---|
51 | VMS/Posix is the OPEN part of OPEN/VMS. It consists of three |
---|
52 | main sections. |
---|
53 | |
---|
54 | - The POSIX Libraries, which are system interfaces |
---|
55 | adhering to the Callable Interface standards IEEE 1003.1, |
---|
56 | 1003.1a and 1003.2 and most of 1003.4 (real time). |
---|
57 | - The POSIX Commands and utilities, 1003.2 (Classic Utilities) |
---|
58 | some of the Software Development utilities. |
---|
59 | - The VMS/Posix Shell, a Korn Shell variant. |
---|
60 | |
---|
61 | TCSH has been ported to be POSIX Conformant. The one thing preventing |
---|
62 | `Strict POSIX Conformance' is the use of Termcap routines that |
---|
63 | require the presence of a /dev/termcap. Once code has been written |
---|
64 | to use the library routines tcgetattr etc, the source will be |
---|
65 | strictly POSIX conformant. |
---|
66 | |
---|
67 | TCSH has certain features missing or disabled. |
---|
68 | |
---|
69 | - UTMP facilities, this is related to most of the |
---|
70 | inter-user stuff like watchlog. |
---|
71 | - Resource limit access. |
---|
72 | - Access to passwd tag in the passwd structure. |
---|
73 | (use DCL for user admin functions) |
---|
74 | - Other items may be missing or behave in an unexpected |
---|
75 | manner. It has not been possible to test and debug all the |
---|
76 | features of TCSH on VMS as yet. |
---|
77 | |
---|
78 | ---- |
---|
79 | Features and known bugs: |
---|
80 | |
---|
81 | 1) The VMS/Posix MAN command is a drop through to DCL help. |
---|
82 | It seems to assume it will always be running from ksh. To use define |
---|
83 | the alias |
---|
84 | alias man '/bin/sh /bin/man \!*' |
---|
85 | in your /etc/csh.cshrc |
---|
86 | This fixes the problem. |
---|
87 | |
---|
88 | 2) There is a problem with the way TCSH initialises the current working |
---|
89 | directory ($cwd, environment variable PWD) |
---|
90 | Put the command |
---|
91 | cd |
---|
92 | in /etc/csh.cshrc as a workaround. |
---|
93 | For the curious; |
---|
94 | The version of getwd i use is the subroutine in TCSH rather than the |
---|
95 | getcwd from the posix library. |
---|
96 | The tcsh version xgetcwd in tc.os.c will search up the tree, by |
---|
97 | stat()'ing and opening the parent directory, to build up the CWD path. |
---|
98 | All works well until it hits the root directory. At this point it is |
---|
99 | usually looking for a file with st_ino =0 and st_dev = 0, (the default |
---|
100 | numbers assigned to the mount point of a VMS filesystem in the '/' |
---|
101 | directory.) which is the first file it comes across. This, due to the |
---|
102 | way UCX starts is /vms. |
---|
103 | eg. I am in /u1/atp/fred. |
---|
104 | xgetwd looks at '.' gets the st_ino and st_dev. goes to '..' opens |
---|
105 | it and gets the name associated with inode and dev from before. CWD now |
---|
106 | holds "fred". I now repeat the process one layer up. CWD now becomes |
---|
107 | "atp/fred". The problems now start with the stat of '.' at this point. |
---|
108 | stat() returns a st_ino and st_dev of 0. - i don't know why. When i open |
---|
109 | '..' and read it i get the first name that matches an inode of '0' and |
---|
110 | a device of '0' - which is /vms. now my CWD is set to be "/vms/atp/fred" |
---|
111 | This is a problem, as /vms/atp/fred does not exist. That is my understanding |
---|
112 | of the problem. |
---|
113 | This throws the history mechanism, terminal handling, and man pages |
---|
114 | for some reason. I worked around it by putting a |
---|
115 | 'cd' in my /etc/csh.cshrc which effectively copies the contents of $HOME |
---|
116 | into $PWD. |
---|
117 | |
---|
118 | 3) termcap problem |
---|
119 | If the value of term is not a recognised one (vt200_series, vt300_series) |
---|
120 | then shell utilities like 'more' will complain. Unless your /etc/termcap |
---|
121 | has entries for vt300_series, you will not be able to use %U %B et al, and |
---|
122 | anything else that uses the termcap entries. |
---|
123 | |
---|
124 | 4) Line editing problem |
---|
125 | Occasionally the line editing becomes corrupted. This is probably due |
---|
126 | to a conflict in the use of both termios and termcap routines. |
---|
127 | |
---|
128 | 5) TCSH expects to be installed in /usr/local/bin - you may change this |
---|
129 | in Makefile.vms or create /usr/local/bin. |
---|
130 | |
---|
131 | 6) If you have problems with reading things on the path - substitute |
---|
132 | /bin/ for /bin in pathnames.h - VMS/Posix uses symbolic links for all |
---|
133 | the top level directories. |
---|
134 | |
---|
135 | 7) If the shell complains that a command is not found check to see if |
---|
136 | there are multiple version numbers in /bin/ eg. tar..1 tar..2 . if |
---|
137 | there are, get the sysmanager to purge this directory. |
---|
138 | |
---|
139 | --------- |
---|
140 | suggested csh.cshrc |
---|
141 | --- |
---|
142 | # model csh.cshrc |
---|
143 | alias man '/bin/sh /bin/man \!*' |
---|
144 | cd |
---|
145 | set history 50 |
---|
146 | stty sane |
---|
147 | #end |
---|
148 | --- |
---|
149 | |
---|
150 | I read vmsnet.vms-posix, It is a low volume newsgroup, so i tend to |
---|
151 | read all articles, if E-mail fails to work for you get me there. |
---|
152 | |
---|
153 | I Release the work I have done in porting this to VMS/Posix into the |
---|
154 | public domain under the conditions imposed by the headers contained |
---|
155 | in the source code. I accept no Liability either express or implied |
---|
156 | for any damage or loss arising from the use or failure of this code. |
---|
157 | Have a nice day. |
---|
158 | |
---|
159 | Andy Phillips |
---|
160 | Mullard Space Science Lab. 92/10/07 |
---|
161 | Holmbury St. Mary. 19709::atp |
---|
162 | Surrey. atp@uk.ac.ucl.mssl |
---|
163 | England. |
---|
164 | |
---|