Standardize License information
[openafs.git] / src / afsinstall / lib / InstallGuides / RS_AIX4x / rc
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 # An InstallGuide for installing the initialization script
9 # For IBM RS/6000 systems running AIX 4.x
10 #
11
12 sub rc {
13 my($rcfile,$initfile, $method,$line,$method,%Method);
14
15 # Defaults
16 $rcfile   = "/etc/rc.afs";
17 $initfile = "/etc/inittab";
18
19 &ErrorsAreFatal(1);
20
21 # Add AFS kernel loader to RC file
22 &VPrint("Creating $rcfile file");
23 &DisplaceFile($rcfile);
24 $rc = open(RC, "> $rcfile");
25 &ErrorMsg("Could not overwrite", $rcfile) if (!$rc);
26
27
28 $method = "none";
29 if ($Configuration{"NFSEXTENSIONS"}) {
30   $method = "nfs";
31   # Determine if this AIX system uses the iauth system
32   #   AIX 4.1.x  for x>=5
33   #   AIX 4.2.x  for x>=1
34   #   AIX 4.x    for x>=3
35   open(LPP, "/bin/lslpp -L |");
36   while ($line = <LPP>) {
37     next unless ($line =~ /bos.rte\s/);
38     $line =~ /bos.rte\s+(\d)\.(\d)\.(\d)/;
39     ($a,$b,$c) = ($1,$2,$3);
40     $method = "iauth" if ($a == 4 && $b == 1 && $c >= 5); 
41     $method = "iauth" if ($a == 4 && $b == 2 && $c >= 1); 
42     $method = "iauth" if ($a == 4 && $b >= 3);
43     last; };
44   close(LPP); };
45
46 $Method{"none"}  = "#USENFS=\"none\"";
47 $Method{"nfs"}   = "#USENFS=\"nfs\"";
48 $Method{"iauth"} = "#USENFS=\"iauth\"";
49 $Method{$method} =~ s:#::;
50
51 print RC <<"EORC";
52 #!/bin/sh
53
54
55 # Choose one depending on how much usage this client gets
56 #OPTIONS="-stat 300 -dcache 100 -daemons 2 -volumes 50"
57 #OPTIONS="-stat 2000 -dcache 800 -daemons 3 -volumes 70"
58 OPTIONS="-stat 2800 -dcache 2400 -daemons 5 -volumes 128"
59
60 # Choose one depending on how you want NFS requests handled by AFS
61 $Method{"none"}
62 $Method{"nfs"}
63 $Method{"iauth"}
64
65 if [ "\$USENFS" = "nfs" ]; then
66   ExportExt=""
67   AFSExt=".trans"
68   NFS="-rmtsys"
69 elif [ "\$USENFS" = "iauth" ]; then
70   ExportExt=".nonfs"
71   AFSExt=".iauth"
72   NFS="-rmtsys"
73 else
74   ExportExt=".nonfs"
75   AFSExt=""
76   NFS=""
77 fi
78
79 # Load AFS into the kernel
80 cd /usr/vice/etc/dkload
81 /usr/vice/etc/dkload/cfgexport -a /usr/vice/etc/dkload/export.ext\${ExportExt}
82 /usr/vice/etc/dkload/cfgafs -a /usr/vice/etc/dkload/afs.ext\${AFSExt}
83
84 # Start bosserver
85 if [ -x /usr/afs/bin/bosserver ]; then
86   echo 'Starting bosserver' > /dev/console
87   /usr/afs/bin/bosserver &
88 fi
89
90 # Start afsd
91 /usr/vice/etc/afsd \$OPTIONS \$NFS
92
93 # Start AFS inetd services
94 if [ -f /etc/inetd.afs -a -f /etc/inetd.conf.afs ]; then
95     /etc/inetd.afs /etc/inetd.conf.afs
96 fi
97
98 EORC
99 close(RC);
100
101 # Add AFS entry to the inittab file
102 &VPrint("Adding AFS entry to $initfile");
103
104 &Patch::Verbose if ($InstallVerbose);
105 &Patch::FileOpen($initfile);
106 $SearchString = <<"xxENDxx";
107 rcnfs:2:wait:/etc/rc.nfs > /dev/console 2>&1 # Start NFS Daemons
108 xxENDxx
109
110 $NewString = <<"xxENDxx";
111 rcafs:2:wait:/etc/rc.afs > /dev/console 2>&1 # Start AFS Daemons
112 xxENDxx
113
114 if (!&Patch::Patch($initfile, [[0, "Insert", $SearchString, $NewString]])) {
115   &ErrorMsg("Did not succeed with patch", $initfile);
116 }
117 &Chmod (0755, $rcfile);
118 &Chown (0,0, $rcfile);
119 }