TITLE: Tornado CDs, lower case files, and trailing dots AUTHOR: Joshua SCOPE DISCOVERED ON HOST: Unix Solaris 2.5 ------------------- ------------------- ARCHITECTURE: N/A N/A ------------------- ------------------- BSP: N/A N/A ------------------- ------------------- PRODUCT / REVISION: Tor 1.0.1 -04, -05, -06 Tor 1.0.1 -06 ------------------- ------------------- DESCRIPTION OF PROBLEM: Running 'setup' immediately returns an error: "tar: can't open /cdrom/cdrom0/RESOURCE/TCL/LIB/TKLIB.TAR: no such file or directory" This only seems to occur on relatively recent CD-ROMs of Tornado on some hosts. This will also occur on revision -06 of the CDs whenever NFS is involved. RESEARCH: Talked with other persons in Tech Support. Looked at file names on different versions of Tornado CD-Roms. Attempted to open different file names on different host types. RESOLUTION: Revision -06 has postpended dots to all files which did not have extensions. Thus "SETUP" becomes "setup.", WLMD becomes "wlmd.", etc. Additionally, the installation scripts on the Tornado CD expect to see upper case files. They attempt to work with upper case files. Thus the new CD ROMs we are shipping should not work. However, many implementations of CDROM drivers and/or CDROM subsystems seem to implement case insensitivity, and ignore the trailling dots. As a result, many computers will work with the new CDs, but some do not. Further, all installs made over NFS will fail. To work around this, I have written a script that creates a tree of symlinks, much like our tool 'shadow'. However, in this version, all the resultant links will have upper case names, and will be missing any trailing dots. The install will successfully run out of the shadowed tree. The script is written in Tcl, and can be run by the interpreter on the CDROM. Unfortunately there is no way for the script to know the path to the CDROM, and thus the path following #! must be hand-edited. In summary, the steps necessary to work around the problem are: 1) copy the following script into a text file and make it executable. 2) edit the initial path in the script to point to the correct and available tcl interpreter (ie INSTTCL2) 3) create a temporary directory 4) execute the script with a path to the cdrom and a path to the temporary directory as arguments 5) run SETUP in the temporary directory install should proceed correctly. 6) (optional) rm -r the temporary directory installShadow.tcl: -----------cut---here--------- #!/cdrom/cdrom0/sun4/solaris2/insttcl2. #This is a hacked up script to make correct symbolic links to mangled #CD images. SPR# 20437 #This version was further modified to fix the trailing dots. SPR# 21654 # if {$argc != 2} { puts { usage: installShadow.tcl CD-Base: full path to the CD-Rom mount point. installBase: full path to install basepoint. installShadow.tcl works by making symlinks back to the CDROM in the appropriate uppercase characters. This allows the install to proceed in cases where the CD-rom drivers are case sensitive. } exit } set cdRoot [lindex $argv 0] set linkRoot [lindex $argv 1] proc copyFiles {fileList pathAdd} { global cdRoot global linkRoot # puts "filelist is $fileList" # puts "pathAdd is $pathAdd" foreach fileName $fileList { set path [file join $pathAdd $fileName] set sourcePath [file join $cdRoot $path] set destPath [file join $linkRoot [string toupper $path]] #fix for -06 trailing dot problem. set destPath [string trimright $destPath .] # puts "sourcePath is $sourcePath" # puts "destPath is $destPath" if [file isdirectory $sourcePath] { file mkdir $destPath #recurse into subdirectory cd $fileName copyFiles [glob *] [file join $pathAdd $fileName] cd .. } elseif [file isfile $sourcePath] { exec ln -s $sourcePath $destPath } } } set startDir [pwd] #expand paths cd $linkRoot set linkRoot [pwd] cd $startDir cd $cdRoot set cdRoot [pwd] set rootList [glob *] copyFiles $rootList {} cd $startDir -----------cut---here--------- SPR / PATCH: 20437 KEYWORDS: upper case lower case sunos scsi nfs mounted SIGN-OFF: Joel GROUP: install