Diff for /loncom/build/Attic/parse.pl between versions 1.16 and 1.23

version 1.16, 2000/12/14 17:39:57 version 1.23, 2001/01/13 17:58:43
Line 146  elsif ($mode eq "BinaryRoot") { Line 146  elsif ($mode eq "BinaryRoot") {
     $a=&make_file_list(\@directories);      $a=&make_file_list(\@directories);
     print OUT $a;      print OUT $a;
     close OUT;      close OUT;
       open OUT,">setup_file_list.txt";
       print OUT "BinaryRoot/etc/passwd\n";
       close OUT;
       open OUT,">BinaryRoot/etc/passwd";
       print OUT<<END;
   root::0:0:root:/root:/bin/bash
   bin:*:1:1:bin:/bin:
   daemon:*:2:2:daemon:/sbin:
   adm:*:3:4:adm:/var/adm:
   lp:*:4:7:lp:/var/spool/lpd:
   sync:*:5:0:sync:/sbin:/bin/sync
   shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
   halt:*:7:0:halt:/sbin:/sbin/halt
   mail:*:8:12:mail:/var/spool/mail:
   news:*:9:13:news:/var/spool/news:
   uucp:*:10:14:uucp:/var/spool/uucp:
   operator:*:11:0:operator:/root:
   games:*:12:100:games:/usr/games:
   gopher:*:13:30:gopher:/usr/lib/gopher-data:
   ftp:*:14:50:FTP User:/home/ftp:
   nobody:*:99:99:Nobody:/:
   www:x:500:500:www:/home/www:/bin/bash
   END
   close OUT;
       open OUT,">>setup_file_list.txt";
       print OUT "BinaryRoot/etc/hosts.deny\n";
       close OUT;
       open OUT,">BinaryRoot/etc/hosts.deny";
       print OUT<<END;
   ALL: ALL
   END
   close OUT;
           
       `install -d BinaryRoot/etc/pam.d`;
       open OUT,">>setup_file_list.txt";
       print OUT "BinaryRoot/etc/pam.d/passwd\n";
       close OUT;
       open OUT,">BinaryRoot/etc/pam.d/passwd";
       print OUT<<END;
   #%PAM-1.0
   auth       required     /lib/security/pam_pwdb.so shadow nullok
   account    required     /lib/security/pam_pwdb.so
   password   required     /lib/security/pam_cracklib.so retry=3
   password   required     /lib/security/pam_pwdb.so use_authtok nullok
   END
   close OUT;
       open OUT,">>setup_file_list.txt";
       print OUT "BinaryRoot/etc/pam.d/login\n";
       close OUT;
       open OUT,">BinaryRoot/etc/pam.d/login";
       print OUT<<END;
   #%PAM-1.0
   auth       required     /lib/security/pam_securetty.so
   auth       required     /lib/security/pam_pwdb.so shadow nullok
   auth       required     /lib/security/pam_nologin.so
   account    required     /lib/security/pam_pwdb.so
   password   required     /lib/security/pam_cracklib.so
   password   required     /lib/security/pam_pwdb.so nullok use_authtok
   session    required     /lib/security/pam_pwdb.so
   session    optional     /lib/security/pam_console.so
   END
   close OUT;
   
 }  }
 elsif ($mode eq "status") {  elsif ($mode eq "status") {
 }  }
Line 156  elsif ($mode eq "configinstall") { Line 218  elsif ($mode eq "configinstall") {
     @directories=&determine_directory_structure;      @directories=&determine_directory_structure;
     $a=&make_files_configinstall_segment(\@directories);      $a=&make_files_configinstall_segment(\@directories);
     print $a;      print $a;
       $a=&make_files_configpermissions_segment(\@directories);
       print $a;
 }  }
 elsif ($mode eq "install") {  elsif ($mode eq "install") {
     @directories=&determine_directory_structure;      @directories=&determine_directory_structure;
Line 179  sub make_file_list { Line 243  sub make_file_list {
     my @allfiles=keys %{$info{'LOCATION'}{$distribution}};      my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  # set other values   # set other values
    $description.=<<END;
   BinaryRoot/$d
   END
  my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};   my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
  $dirdescription="(" . $dirdescription . ")" if $dirdescription;   $dirdescription="(" . $dirdescription . ")" if $dirdescription;
  # find files that are contained in this directory   # find files that are contained in this directory
Line 246  END Line 313  END
  my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};   my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
  my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};   my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
  my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};   my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my ($owner,$group)=split(/\:/,$devchown);
  my $own=$devchown; $own=~s/\:/\,/;   my $own=$devchown; $own=~s/\:/\,/;
  $description.=<<END;   $description.=<<END;
 \tinstall -m $devchmod -d \$(TARGET)/$d  \tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d
 END  END
     }      }
     $description.=<<END;      $description.=<<END;
Line 293  END Line 361  END
  my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};   my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
  $description.=<<END if $category ne 'symbolic link';   $description.=<<END if $category ne 'symbolic link';
 \tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
     }      }
  }   }
Line 645  END Line 714  END
 END  END
                 }                  }
     }      }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # ------ Commands to enforce configuration file permissions
   sub make_files_configpermissions_segment {
       my ($dirs)=@_;
       my $description=<<END;
   configpermissions:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   \t# $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $rot=$filesfull[$i];
    $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    my ($owner,$group)=split(/\:/,$devchown);
    if ($category eq 'conf') {
       $description.=<<END;
   \tchmod $devchmod \$(TARGET)/$rot
   \tchown $devchown \$(TARGET)/$rot
   END
                   }
       }
  }   }
     }      }
     $description.=<<END;      $description.=<<END;

Removed from v.1.16  
changed lines
  Added in v.1.23


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>