From: MERC::"uunet!tntech.edu!FEB" 10-MAR-1993 10:13:15.42 To: LEDERMAN@decus.org CC: CLOWENSTEIN@UCSD.EDU, WEST@decus.org, STEVENS@decus.org, GAUDETTE@decus.org, EVERHART, NIELAND@DECUS.Org Subj: Re: Trying to mount UNIX CD-ROM >From: "Bart Z. Lederman (617) 494-2792 Work" [...stuff deleted...] >I don't know if printed instructions were supposed to come with any of these >CD-ROMS, but if there were I don't seem to be able to locate any of them. [...stuff deleted...] >Do you know how to mount any of these CD-ROMs on a Sun? Bart, Attached are the set of readme files that go with the Unix CD. Regards, -Frank >------------------------------ readme.1st ------------------------------< This CDROM collection is divided into four general categories: X containing X11R5 patch level 3; and 2 utilities for controlling the DEC CDROM player under X. note: due to directory depth constraints under ISO 9660 the X11R5 distribution is actually in the top level directory of the CD-ROM simtel containing the SIMTEL UNIX collection. gnu containing software from the Free Software Foundation. Some of this is still in tar format, but a lot has been uncompressed and untared. general consisting of other useful tools ranging from elm (a popular UNIX mail utility) to ANALYTICALC (Glenn Everhart's popular spreadsheet, now integrated with the RIM database). There is also a README/ directory, with readme files from the various directories. Since this CDROM is made to the ISO 9660 standard, the filenames had to be changed. In order to use the sources on this disk, a utility has been provided to link the correct file names to the names on the CDROM. In order to build a portion of the utilities on the CDROM follow these steps: 1) If you don't already have perl installed, copy the appropriate perl from the top directory of the CDROM to /usr/local/bin/perl or insert CD/perl.xxx before the command in step 5, where CD is the mount point of the CDROM and xxx determines your architecture type: perl.dec = DECstation, perl.s4 = SPARCstation, perl.386 = SUN386, perl.nxt = NEXT, perl.vax = VAX/ULTRIX. note: since ISO 9660 is case insensitive some versions of UNIX convert the filename to upper case and others to lower case. If you see PERL.DEC it will need to be copied to lower case in /usr/local/bin i.e., /usr/local/bin/perl 2) Look at the file selgrps or SELGRPS in the top level of the CDROM to determine what starting point you would like. (README/ holds info files for the other directories.) 3) Make a directory to hold the selection. 4) Change to that directory. 5) Issue the command: $CD/cd2norm selection $CD or $CD/CD2NORM selection $CD where CD is the mount point of the CDROM and selection is your selection from selgrps. cd2norm is designed to use the appropriate translation tables based upon the case used in the script name. CD2NORM.UP and cd2norm.lo are also provided. note: if your version of UNIX does not understand the #!shell syntax in shell scripts, this command should be: perl $CD/cd2norm selection $CD 6) Follow the instructions to build the application[s]. Note: If you need to edit any files, you will have to copy them first as the above procedure produces links to the files on the CDROM. You will also need to leave the CDROM mounted while you build applications. ULTRIX example: %mount -t -o noversions cdfs /dev/rz4c /mnt %cp /mnt/PERL.DEC /usr/local/bin/perl %chmod +x /usr/local/bin/perl %mkdir /usr/local/src/elm %cd /usr/local/src/elm %/mnt/CD2NORM general/elm/ /mnt %make %umount /mnt SUNOS 4.1.1 example: %mount -o ro -t hsfs /dev/sr0 /mnt %cp /mnt/perl.s4 /usr/local/bin/perl %chmod +x /usr/local/bin/perl %mkdir /usr/local/src/elm %cd /usr/local/src/elm %/mnt/cd2norm general/elm/ /mnt %make %umount /mnt If your version of Unix does not understand the #!/usr/local/bin/perl, you will need to change: %/mnt/cd2norm general/elm/ /mnt to: %/usr/local/bin/perl /mnt/cd2norm general/elm/ /mnt or %/mnt/CD2NORM general/elm/ /mnt to: %/usr/local/bin/perl /mnt/CD2NORM general/elm/ /mnt >------------------------------ readme.2nd ------------------------------< The README/ directory is a collection of the README files from all the software on this CD-ROM. These contain descriptions of the software and differences between these and previous versions. In order to look at the README directory do the following: Mount the CDROM %mkdir README %cd README %$CD/perl.xxx $CD/cd2norm README/ $CD or %mkdir README %cd README %$CD/PERL.XXX $CD/CD2NORM README/ $CD where perl.xxx or PERL.XXX is the correct binary for your architecture and $CD is the full path to the mount point of your CDROM. General Software Descriptions and approximate installation sizes: X11R5/ The fifth release of the X11 Windowing System from MIT Binaries and Libraries for the MIT portion take about 50 meg. X/ fixes4_7 Patches 4 - 7 for X11R5 (1 - 3 are installed) xcddec X based control software for playing music on the new DEC CDROMS. (binary only, comes from Digital) About 2 meg. installed xcdsrc X based control software for playing music on the new DEC CDROMS. (sources, from Scott Garland Boise State University) About 2 meg. installed simtel/ This directory contains the Simtel Unix Collection. In order to learn more about the specific software please follow the instructions for creating the README/ directory and see: README/simtel/000-master-index.txt. gnu/ * Any utility followed by * is needed for building some of the other programs in this directory. Also, some of these programs will by default try to build using gcc. To use your standard C compiler add CC=cc to the make command. e.g. make CC=cc. bison* The GNU equivalent of yacc. About 1/2 meg. flex-2.3.7* The GNU equivalent of lex, a lexical analysis program generator diff-1.15* The GNU diff reports differences between files. About 1/2 meg. emacs-18.57 A fully extensible and customizable editor. About 14 meg. epoch-3.2 A version of emacs that does more with X. About 14 meg. gcc-1.40 The GNU C compiler. (ANSI C) about 5 1/2 meg. g++-1.39 The GNU C++ compiler (a real compiler, not just a precompiler). gdb-4.0 The GNU source level symbolic debugger for C programs. About 1/2 meg. gnus-3.13 A program for reading USENET News from within emacs or epoch using NNTP. About 1/2 meg. make-3.62 The GNU make utility. About 3/4 meg. rcs-5.5 The GNU Revision Control System for tracking and controlling the development and versions of files. About 3 meg. tar-1.10 the GNU Tape Archive program. This version understands remote tape drives, filesystem boundaries and compress. About 2/3 meg. gnu/glenn/ This directory contains some of the other GNU software. There are also some system specific files here. general/ ckermit A version of the kermit file transfer protocol and communications program written in C. About 1 1/2 meg. elm An easy interface to UNIX Mail. About 2 1/2 meg. fineclock The routines to change the clock rate on a DECstation. About 55 K ispell-2.0.02 A spelling checker. About 1 1/2 meg. less Similar to more, but allows backward movement, and does not need to read the entire file before starting. About 1/2 meg. monitor_v4 A program for monitoring ULTRIX systems. (Similar to monitor/system on VAX/VMS). About 3/4 meg. perl-4.19 An interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. The cd2norm program is written in perl. About 4 1/5 meg. rmtlib A library to allow programs to access remote tape drives as if they were local. The programmer uses standard mt calls for both local and remote drives. Note: This is required for remote access using the vmsbackup program. About 50 K. vmsbackup A program that reads vmsbackup format tapes and files under UNIX. Note: In order to use the remote tape drive options, rmtlib is required. About 80 K. tcpdump A network packet watcher. About 1/2 meg. tcsh-6.00 A version of the Berkeley C-Shell, with the addition of: a command line editor, command and file name completion, listing, etc. and a bunch of small additions to the shell itself. Note: This version does not require the C-Shell sources. About 2 meg. >------------------------------ readme.3rd -------------------------------< IMPORTANT cd2norm change Due to a last minute move of the X11R5 directory out of the X directory, the PERL script cd2norm or CD2NORM will need to be modified. Please follow these instructions prior to attempting to build software from this CD-ROM 1) copy cd2norm or CD2NORM from your CD-ROM to someplace where it can be edited. 2) edit this file and make the following additions: a) at line 21 add : $X11DIR="X11R5/"; $X11DIRSHORT="X11R5"; $X11FULLDIR="X/X11R5/"; after: $SEL_TABLE_CASE="SELTABLE.UP"; $LNDIR_CASE="LNDIR"; $SELGRPS_CASE="SELGRPS"; b)at the new line 32 add: $X11DIR="x11r5/"; $X11DIRSHORT="x11r5"; $X11FULLDIR="x/x11r5/"; after: $SEL_TABLE_CASE="seltable"; $LNDIR_CASE="lndir"; $SELGRPS_CASE="selgrps"; c)at the new line 59 add: if ($REAL eq "X/X11R5" || $REAL eq "x/x11r5"){ ($DUMPIT,$REAL)=split("/",$REAL,$2); } just prioor to : close(dummy); # # d)at the new line 86 add: if($START eq "X/"){ mkdir ($X11DIRSHORT,0755); $HOLDDIR=$ENV{'PWD'}; chdir $X11DIR || die "Can't cd to $X11DIR $!\n"; system "$MOUNT/$LNDIR_CASE $MOUNT/$X11DIR ."; chdir $HOLDDIR || die "Can't cd to $HOLDDIR $!\n"; } after: print "Linking files\n"; system "$MOUNT/$LNDIR_CASE $MOUNT/$CDDIR ."; e)at the new line 109 add: elsif ($START eq "X/X11R5/" && $TESTER eq $X11FULLDIR) {$SKIPLEN = $STRLEN; $DOIT=1; } after: if ($START eq "ALL"){$SKIPLEN = 0; $STRLENCD = 0;$DOIT = 1;} elsif ($TESTER2 eq $CDDIR){ $SKIPLEN = $STRLENCD; $DOIT=1;} elsif ($TESTER eq $START){$SKIPLEN = $STRLEN; $DOIT=1;} f)at the new line 112 add: $SKIPIT=0; if($START eq "X/"){ $CHECK_X11 = substr ($CD,0,6); if($CHECK_X11 eq $X11DIR){ $SKIPIT=1; } } if($START eq "ALL"){ $CHECK_X11 = substr ($REAL,0,8); if($CHECK_X11 eq $X11FULLDIR){ $REAL = substr($REAL,2); } } after: if ($DOIT){ g) at the new line 125 change: $REAL = substr($REAL,$SKIPLEN); $CD = substr($CD,$STRLENCD); if(-e "$CD"){ to: $REAL = substr($REAL,$SKIPLEN); if(!$SKIPIT){ $CD = substr($CD,$STRLENCD); } if(-e "$CD"){ 3) continue with the instructions from the readme.1st and readme.2nd or the README.1ST and README.2ND files. ------------------------------------------------------------------------------- Here is the revised version ------------------------------------------------------------------------------- #!/usr/local/bin/perl if (rindex($ARGV[1],"/") == -1 && $ARGV[1] ne "ALL"){ print "USAGE: $PATH/cd2norm startingdir cd-mount-point or\n"; print "USAGE: $PATH/CD2NORM startingdir cd-mount-point\n"; print "Where startingdir can be found in selgrps or SELGRPS in the top\n"; print "level directory of the cd-rom - rember to include the trailing /\n"; exit(1); } if (($PATHDEL=rindex($0,"/")) == -1){ $CASE_CHECK = $0; } else{ $CASE_CHECK = substr($0, ($PATHDEL +1)); } if ($CASE_CHECK eq "CD2NORM") { print "ISO file system mounted as upper case\n"; $TABLE_CASE="TABLE.UP"; $SEL_TABLE_CASE="SELTABLE.UP"; $LNDIR_CASE="LNDIR"; $SELGRPS_CASE="SELGRPS"; $X11DIR="X11R5/"; $X11DIRSHORT="X11R5"; $X11FULLDIR="X/X11R5/"; } else{ if ($CASE_CHECK eq "cd2norm") { print "ISO file system mounted as lower case\n"; $TABLE_CASE="table"; $SEL_TABLE_CASE="seltable"; $LNDIR_CASE="lndir"; $SELGRPS_CASE="selgrps"; $X11DIR="x11r5/"; $X11DIRSHORT="x11r5"; $X11FULLDIR="x/x11r5/"; } else { print "error $CASE_CHECK\n"; } } print "$TABLE_CASE $SEL_TABLE_CASE $LNDIR_CASE $SELGRPS\n"; $START=$ARGV[0]; $MOUNT=$ARGV[1]; $THERE=0; if ($START eq "ALL"){ $THERE = 1; $CDDIR = ""; } open(dummy,"$MOUNT/$SEL_TABLE_CASE"); while(){ chop; if (!$THERE){ ($REAL,$CD)=split(" ",$_,2); if ($START eq $REAL){ $CDDIR = $CD; $THERE=1; } } } if ($REAL eq "X/X11R5" || $REAL eq "x/x11r5"){ ($DUMPIT,$REAL)=split("/",$REAL,$2); } close(dummy); # # if(!$THERE){ print "$START is not an option\n The options are:\n"; system "more $MOUNT/$SELGRPS_CASE"; print "To review these see $MOUNT/$SELGRPS\n"; exit; } print "current directory $ENV{'PWD'} is this correct? [y/n]\n"; sysread(STDIN,$TEST,80); if ($TEST eq "\n"){$TEST = "y\n";} chop $TEST; if($TEST ne "y" && $TEST ne "Y"){ print "Where should I be?\n"; sysread(STDIN,$TEST,80); chop $TEST; if ($TEST eq "~"){$TEST = "";} chdir $TEST || die "Can't cd to $TEST $!\n"; } # # print "Linking files\n"; system "$MOUNT/$LNDIR_CASE $MOUNT/$CDDIR ."; if($START eq "X/"){ mkdir ($X11DIRSHORT,0755); $HOLDDIR=$ENV{'PWD'}; chdir $X11DIR || die "Can't cd to $X11DIR $!\n"; system "$MOUNT/$LNDIR_CASE $MOUNT/$X11DIR ."; chdir $HOLDDIR || die "Can't cd to $HOLDDIR $!\n"; } # # print "Fixing file names\n"; $STRLEN = length($START); $STRLENCD = length($CDDIR); open(dummy,"$MOUNT/$TABLE_CASE"); while(){ chop; $DOIT=0; $DODIR=0; ($REAL,$CD)=split(" ",$_,2); $TESTER = substr ($REAL,0,$STRLEN); $TESTER2 = substr ($REAL,0,$STRLENCD); if ($START eq "ALL"){$SKIPLEN = 0; $STRLENCD = 0;$DOIT = 1;} elsif ($TESTER2 eq $CDDIR){ $SKIPLEN = $STRLENCD; $DOIT=1;} elsif ($TESTER eq $START){$SKIPLEN = $STRLEN; $DOIT=1;} elsif ($START eq "X/X11R5/" && $TESTER eq $X11FULLDIR) {$SKIPLEN = $STRLEN; $DOIT=1; } if ($DOIT){ $SKIPIT=0; if($START eq "X/"){ $CHECK_X11 = substr ($CD,0,6); if($CHECK_X11 eq $X11DIR){ $SKIPIT=1; } } if($START eq "ALL"){ $CHECK_X11 = substr ($REAL,0,8); if($CHECK_X11 eq $X11FULLDIR){ $REAL = substr($REAL,2); } } $REAL = substr($REAL,$SKIPLEN); if(!$SKIPIT){ $CD = substr($CD,$STRLENCD); } if(-e "$CD"){ if (-d "$CD"){ $DODIR = 1; } else{ rename($CD,$REAL); print "$CD -> $REAL\n"; } } else{ print "Can't find $CD to rename to $REAL\n"; } } if ($DODIR){ $TMP = join(" ",$REAL,$CD); $DIRSTR = join("\n",@DIRHOLDER); $DIRSTR = join("\n",$DIRSTR,$TMP); @DIRHOLDER = split("\n",$DIRSTR); } } while($#DIRHOLDER>0){ $TMP = pop(@DIRHOLDER); ($REAL,$CD)=split(" ",$TMP,2); if(-e "$CD"){ rename($CD,$REAL); print "$CD -> $REAL\n"; } else{ print "Can't find $CD to rename to $REAL\n"; } }