version 1.10, 2000/12/10 17:27:11
|
version 1.23, 2001/01/13 17:58:43
|
Line 121 elsif ($mode eq "SPEC") {
|
Line 121 elsif ($mode eq "SPEC") {
|
} |
} |
elsif ($mode eq "LCMakefile") { |
elsif ($mode eq "LCMakefile") { |
@directories=&determine_directory_structure; |
@directories=&determine_directory_structure; |
|
$a=&make_directory_LCMakefile_segment(\@directories); |
|
print $a; |
|
$a=&make_files_LCMakefile_segment(\@directories); |
|
print $a; |
|
$a=&make_links_LCMakefile_segment(\@directories); |
|
print $a; |
|
} |
|
elsif ($mode eq "BinaryRoot") { |
|
mkdir "BinaryRoot",0755; |
|
open OUT,">Makefile.BinaryRoot"; |
|
@directories=&determine_directory_structure; |
|
$a=&make_directory_binaryroot_segment(\@directories); |
|
print OUT $a; |
|
$a=&make_files_binaryroot_segment(\@directories); |
|
print OUT $a; |
|
$a=&make_links_binaryroot_segment(\@directories); |
|
print OUT $a; |
|
close OUT; |
|
print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' directories`; |
|
print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' files`; |
|
print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' links`; |
|
open OUT,">base_file_list.txt"; |
|
$a=&make_file_list(\@directories); |
|
print OUT $a; |
|
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 "update") { |
|
} |
|
elsif ($mode eq "configinstall") { |
|
@directories=&determine_directory_structure; |
|
$a=&make_files_configinstall_segment(\@directories); |
|
print $a; |
|
$a=&make_files_configpermissions_segment(\@directories); |
|
print $a; |
|
} |
|
elsif ($mode eq "install") { |
|
@directories=&determine_directory_structure; |
$a=&make_directory_install_segment(\@directories); |
$a=&make_directory_install_segment(\@directories); |
print $a; |
print $a; |
$a=&make_files_install_segment(\@directories); |
$a=&make_files_install_segment(\@directories); |
Line 128 elsif ($mode eq "LCMakefile") {
|
Line 230 elsif ($mode eq "LCMakefile") {
|
$a=&make_links_install_segment(\@directories); |
$a=&make_links_install_segment(\@directories); |
print $a; |
print $a; |
} |
} |
elsif ($mode eq "status") { |
elsif ($mode eq "build") { |
|
@directories=&determine_directory_structure; |
|
$a=&make_files_build_segment(\@directories); |
|
print $a; |
} |
} |
elsif ($mode eq "update") { |
|
|
# ------------------------------------------------------ a list of file targets |
|
sub make_file_list { |
|
my ($dirs)=@_; |
|
my $description; |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
foreach my $d (@$dirs) { |
|
# set other values |
|
$description.=<<END; |
|
BinaryRoot/$d |
|
END |
|
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) { |
|
} |
|
my $pwd=`pwd`; chop $pwd; |
|
if (@files) { |
|
foreach my $i (0..$#files) { |
|
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
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 $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
|
my $rot="/".$filesfull[$i]; |
|
if ($rot=~/\*/) { |
|
$rot=~s/[^\/]+$// if $rot=~/\*/; |
|
my $listing=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'}; |
|
chop $listing; |
|
my @list=split(/\s+/,$listing); |
|
my $rot2; |
|
foreach my $l (@list) { |
|
$l=~s/^\s*//; $l=~s/\s*$//; |
|
$rot2.="BinaryRoot$rot$l\n" if length($l); |
|
} |
|
chop $rot2; |
|
$rot=$rot2; |
|
} |
|
else { |
|
$rot="BinaryRoot$rot"; |
|
} |
|
if ($category eq "conf") { |
|
$rot.=" # config"; |
|
} |
|
$description.=<<END; |
|
$rot |
|
END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# --------------------------------- Commands to make BinaryRoot directories |
|
sub make_directory_binaryroot_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
directories: |
|
END |
|
foreach my $d (@$dirs) { |
|
my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'}; |
|
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 ($owner,$group)=split(/\:/,$devchown); |
|
my $own=$devchown; $own=~s/\:/\,/; |
|
$description.=<<END; |
|
\tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d |
|
END |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# --------------------------------------- Commands to make BinaryRoot files |
|
sub make_files_binaryroot_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
files: |
|
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 $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
|
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
|
my $rot=$filesfull[$i]; |
|
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
|
my ($owner,$group)=split(/\:/,$devchown); |
|
$description.=<<END if $category ne 'symbolic link'; |
|
\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------------------------------ Commands to make BinaryRoot symbolic links |
|
sub make_links_binaryroot_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
links: |
|
END |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
foreach my $d (@$dirs) { |
|
# 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) { |
|
foreach my $i (0..$#files) { |
|
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
my $linkto=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'LINKTO'}; |
|
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
|
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
$description.=<<END if $category eq 'symbolic link'; |
|
\tln -s /$linkto \$(TARGET)/$filesfull[$i] |
|
END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------ Installation commands for a Makefile used only by a rpm -ba invocation |
|
sub make_directory_LCMakefile_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
directories: |
|
END |
|
foreach my $d (@$dirs) { |
|
my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'}; |
|
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 $own=$devchown; $own=~s/\:/\,/; |
|
$description.=<<END; |
|
\tinstall -m $devchmod -d \$(SOURCE)/$d \$(ROOT)/$d |
|
END |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------ Installation commands for a Makefile used only by a rpm -ba invocation |
|
sub make_files_LCMakefile_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
files: |
|
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 $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=~/\*/; |
|
$description.=<<END if $category ne 'symbolic link'; |
|
\tinstall -m $devchmod \$(SOURCE)/$filesfull[$i] \$(ROOT)/$rot |
|
END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
} |
} |
elsif ($mode eq "freshinstall") { |
|
|
# ------ Installation commands for a Makefile used only by a rpm -ba invocation |
|
sub make_links_LCMakefile_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
links: |
|
END |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
foreach my $d (@$dirs) { |
|
# 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) { |
|
foreach my $i (0..$#files) { |
|
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
my $linkto=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'LINKTO'}; |
|
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
|
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
$description.=<<END if $category eq 'symbolic link'; |
|
\tln -s /$linkto \$(ROOT)/$filesfull[$i] |
|
END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
} |
} |
|
|
# --------------------------------- Installation commands to install directories |
# --------------------------------- Installation commands to install directories |
Line 143 directories:
|
Line 528 directories:
|
END |
END |
foreach my $d (@$dirs) { |
foreach my $d (@$dirs) { |
my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'}; |
my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
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 \$(SOURCE)/$d \$(ROOT)/$d |
\tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d |
END |
END |
} |
} |
$description.=<<END; |
$description.=<<END; |
Line 158 END
|
Line 545 END
|
return $description; |
return $description; |
} |
} |
|
|
|
# ------------------------------------------------------ Commands to build files |
|
sub make_files_build_segment { |
|
my ($dirs)=@_; |
|
my $description; |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
my $tab="\t"; |
|
my $sources="all: "; |
|
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; |
|
} |
|
} |
|
if (@files) { |
|
foreach my $i (0..$#files) { |
|
# if has build information, output appropriate something |
|
my $build=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'BUILD'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
|
$build=~s/^\s+//; $build=~s/\s+$//; |
|
if ($build) { |
|
my $dependencies=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DEPENDENCIES'}; |
|
my $source2=$source; |
|
$source2=~s/^[^\/]+\///; |
|
$source2="../" . $source2; |
|
$sources.="$source2 "; |
|
my $directory=$build; |
|
$directory=~s/^[^\/]+\///; |
|
$directory=~s/([^\/]+)$//; |
|
$directory="../" . $directory; |
|
my $buildfile=$1; |
|
my $sdir=$source; |
|
$sdir=~s/^[^\/]+\///; |
|
$sdir=~s/([^\/]+)$//; |
|
$sdir="../" . $sdir; |
|
$dependencies=~s/\s+$//; |
|
my $depstat=""; |
|
if ($dependencies=~s/\s+\[ALWAYS_RUN_BUILD_COMMAND\]//) { |
|
$depstat=" alwaysrun"; |
|
} |
|
$dependencies=~s/\s+/ $sdir/gs; |
|
$description.=<<END; |
|
$source2: $dependencies$depstat |
|
${tab}cd $directory; sh ./$buildfile |
|
|
|
END |
|
} |
|
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=~/\*/; |
|
# $description.=<<END if $category ne 'symbolic link'; |
|
#\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
#END |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
alwaysrun: |
|
|
|
END |
|
$sources.="\n\n"; |
|
return ($sources . $description); |
|
} |
|
|
# --------------------------------------- Installation commands to install files |
# --------------------------------------- Installation commands to install files |
sub make_files_install_segment { |
sub make_files_install_segment { |
my ($dirs)=@_; |
my ($dirs)=@_; |
Line 187 END
|
Line 649 END
|
if (@files) { |
if (@files) { |
foreach my $i (0..$#files) { |
foreach my $i (0..$#files) { |
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
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 $rot=$filesfull[$i]; |
my $rot=$filesfull[$i]; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
$description.=<<END if $category ne 'symbolic link'; |
my ($owner,$group)=split(/\:/,$devchown); |
\tinstall -m $devchmod \$(SOURCE)/$filesfull[$i] \$(ROOT)/$rot |
if ($category ne 'conf') { |
|
$description.=<<END if $category ne 'symbolic link'; |
|
\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
END |
|
} |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------ Installation commands to install configuration files (and make backups) |
|
sub make_files_configinstall_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
configfiles: |
|
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; |
|
\tinstall -b -S `date +'.\%Y\%m\%d\%H\%M\%S'` -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
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 |
END |
|
} |
} |
} |
} |
} |
} |
} |
Line 211 sub make_links_install_segment {
|
Line 780 sub make_links_install_segment {
|
my $description=<<END; |
my $description=<<END; |
links: |
links: |
END |
END |
|
chop $description; |
|
my $description2; |
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
foreach my $d (@$dirs) { |
foreach my $d (@$dirs) { |
# find files that are contained in this directory |
# find files that are contained in this directory |
Line 231 END
|
Line 802 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'}; |
$description.=<<END if $category eq 'symbolic link'; |
if ($category eq 'symbolic link') { |
\tln -s /$linkto \$(ROOT)/$filesfull[$i] |
$description.=" \$(TARGET)/$filesfull[$i]"; |
|
$description2.=<<END; |
|
\$(TARGET)/$filesfull[$i]: |
|
\tln -s /$linkto \$(TARGET)/$filesfull[$i] |
|
|
END |
END |
|
} |
} |
} |
} |
} |
} |
} |
$description.=<<END; |
$description.=<<END; |
|
|
END |
END |
|
$description.=$description2; |
return $description; |
return $description; |
} |
} |
|
|