mirror of
https://github.com/fspc/gbootroot.git
synced 2025-02-23 00:53:23 -05:00
Getting space_check read for changes.
This commit is contained in:
parent
8d6ed2cad4
commit
13c665c0e9
58
Yard.pm
58
Yard.pm
@ -33,7 +33,7 @@ use Exporter;
|
|||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
@EXPORT = qw(start_logging_output kernel_version_check
|
@EXPORT = qw(start_logging_output kernel_version_check
|
||||||
read_contents_file extra_links library_dependencies hard_links
|
read_contents_file extra_links library_dependencies hard_links
|
||||||
space_check create_filesytem);
|
space_check create_filesystem);
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
@ -207,7 +207,7 @@ sub read_contents_file {
|
|||||||
my(@globbed) = yard_glob($expr);
|
my(@globbed) = yard_glob($expr);
|
||||||
if ($#globbed == -1) {
|
if ($#globbed == -1) {
|
||||||
cf_warn($contents_file, $expr,
|
cf_warn($contents_file, $expr,
|
||||||
"Warning: No files matched $line");
|
"Warning: No files matched $expr");
|
||||||
} elsif (!($#globbed == 0 and $globbed[0] eq $expr)) {
|
} elsif (!($#globbed == 0 and $globbed[0] eq $expr)) {
|
||||||
info(1, "Expanding $expr to @globbed\n");
|
info(1, "Expanding $expr to @globbed\n");
|
||||||
}
|
}
|
||||||
@ -504,54 +504,64 @@ sub space_check {
|
|||||||
# %links_to /path/file-symnlink actual-file
|
# %links_to /path/file-symnlink actual-file
|
||||||
# %hardlinked /path/file dev/inode -> stat()
|
# %hardlinked /path/file dev/inode -> stat()
|
||||||
|
|
||||||
|
# open(CHECK,">check-size");
|
||||||
|
|
||||||
my ($file);
|
my ($file);
|
||||||
foreach $file (keys %Included) {
|
foreach $file (keys %Included) {
|
||||||
|
|
||||||
print "$file -> $Included{$file} ... $hardlinked{$file}\n";
|
|
||||||
|
|
||||||
my($replacement, $devino);
|
my($replacement, $devino);
|
||||||
if ($replacement = $replaced_by{$file}) {
|
if ($replacement = $replaced_by{$file}) {
|
||||||
|
## strip count for replace
|
||||||
|
## Check for libraries %lib_needed_by, modules %is_module,
|
||||||
|
## and everything else if strippable, and strip is chosen
|
||||||
##### Use the replacement file instead of this one. In the
|
##### Use the replacement file instead of this one. In the
|
||||||
##### future, improve this so that replacement is resolved WRT
|
##### future, improve this so that replacement is resolved WRT
|
||||||
##### %links_to
|
##### %links_to
|
||||||
info(1, "Counting bytes of replacement $replacement\n");
|
info(1, "Counting bytes of replacement $replacement\n");
|
||||||
$total_bytes += bytes_allocated($replacement);
|
$total_bytes += bytes_allocated($replacement);
|
||||||
|
# print CHECK "TOTAL: $total_bytes AMT: ", bytes_allocated($replacement), "\n";
|
||||||
|
|
||||||
} elsif (-l $file or $links_to{$file}) {
|
} elsif (-l $file or $links_to{$file}) { ## no strip
|
||||||
##### Implicit or explicit symbolic link. Only count link size.
|
##### Implicit or explicit symbolic link. Only count link size.
|
||||||
##### I don't think -l test is needed.
|
##### I don't think -l test is needed.
|
||||||
my($size) = (-l $file) ? length(readlink($file))
|
my($size) = (-l $file) ? length(readlink($file))
|
||||||
: length($links_to{$file});
|
: length($links_to{$file});
|
||||||
info(1, "$file (link) size $size\n");
|
info(1, "$file (link) size $size\n");
|
||||||
$total_bytes += $size;
|
$total_bytes += $size;
|
||||||
|
# print "CHECK $file "TOTAL: $total_bytes AMT: ", $size, "\n";
|
||||||
} elsif ($devino = $hardlinked{$file}) {
|
} elsif ($devino = $hardlinked{$file}) {
|
||||||
##### This file is hard-linked to another. We don't necessarily
|
##### This file is hard-linked to another. We don't necessarily
|
||||||
##### know that the others are going to be in the file set.
|
##### know that the others are going to be in the file set.
|
||||||
##### Count the first and mark the dev/inode so we don't count
|
##### Count the first and mark the dev/inode so we don't count
|
||||||
##### it again.
|
##### it again. .. pretty cool
|
||||||
if (!$counted{$devino}) {
|
if (!$counted{$devino}) { ## 1 strip for hardlinked file
|
||||||
info(1, "Counting ", -s _,
|
info(1, "Counting ", -s _,
|
||||||
" bytes of hard-linked file $file\n");
|
" bytes of hard-linked file $file\n");
|
||||||
$total_bytes += bytes_allocated($file);
|
$total_bytes += bytes_allocated($file);
|
||||||
|
# print CHECK "TOTAL: $total_bytes AMT: ", bytes_allocated($file), "\n";
|
||||||
$counted{$devino} = 1;
|
$counted{$devino} = 1;
|
||||||
} else {
|
} else {
|
||||||
info(1, "Not counting bytes of hard-linked file $file\n");
|
info(1, "Not counting bytes of hard-linked file $file\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif (-d $file) {
|
} elsif (-d $file) { ## no strip
|
||||||
$total_bytes += $INODE_SIZE;
|
$total_bytes += $INODE_SIZE;
|
||||||
info(1, "Directory $file = ", $INODE_SIZE, " bytes\n");
|
info(1, "Directory $file = ", $INODE_SIZE, " bytes\n");
|
||||||
|
# print CHECK "TOTAL: $total_bytes AMT: ", $INODE_SIZE, "\n";
|
||||||
} elsif ($file =~ m|^/proc/|) {
|
} elsif ($file =~ m|^/proc/|) { ## no strip
|
||||||
##### /proc files screw us up (eg, /proc/kcore), and there's no
|
##### /proc files screw us up (eg, /proc/kcore), and there's no
|
||||||
##### Perl file test that will detect them otherwise.
|
##### Perl file test that will detect them otherwise.
|
||||||
next;
|
next;
|
||||||
|
|
||||||
} elsif (-f $file) {
|
} elsif (-f $file) { ##
|
||||||
|
## At this point hardlinked, dirs, replaced_by and /proc have
|
||||||
|
## been filtered out. If strip is chosen
|
||||||
|
## check for libraries (%lib_needed_by), modules (%is_module),
|
||||||
|
## and everything else if strippable.
|
||||||
##### Count space for plain files
|
##### Count space for plain files
|
||||||
info(1, "$file size ", -s _, "\n");
|
info(1, "$file size ", -s _, "\n");
|
||||||
$total_bytes += bytes_allocated($file);
|
$total_bytes += bytes_allocated($file);
|
||||||
|
# print CHECK "TOTAL: $total_bytes AMT: ", bytes_allocated($file), "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,7 +575,9 @@ sub space_check {
|
|||||||
info(0, "But since object files will be stripped, more space\n",
|
info(0, "But since object files will be stripped, more space\n",
|
||||||
"may become available. Continuing...\n");
|
"may become available. Continuing...\n");
|
||||||
} else {
|
} else {
|
||||||
error("You need to trim some files out and try again.\n");
|
print "Not enough room .. but I'll take care of that later\n";
|
||||||
|
return;
|
||||||
|
##@error("You need to trim some files out and try again.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,16 +585,13 @@ sub space_check {
|
|||||||
|
|
||||||
} # end sub space_check
|
} # end sub space_check
|
||||||
|
|
||||||
#######################
|
########################
|
||||||
##### Create filesystem
|
##### Create filesystem
|
||||||
########################
|
########################
|
||||||
#@@sync();
|
#@@sync();
|
||||||
#@@sys("dd if=/dev/zero of=$::device bs=1k count=$::fs_size");
|
#@@sys("dd if=/dev/zero of=$::device bs=1k count=$::fs_size");
|
||||||
#@@sync();
|
#@@sync();
|
||||||
|
|
||||||
|
|
||||||
# This could be broken up into a lot of functions
|
|
||||||
## copy_strip_file will be modified.
|
|
||||||
sub create_filesystem {
|
sub create_filesystem {
|
||||||
|
|
||||||
my $file;
|
my $file;
|
||||||
@ -592,6 +601,7 @@ sub create_filesystem {
|
|||||||
if (-f $::device) {
|
if (-f $::device) {
|
||||||
##### If device is a plain file, it means we're using some loopback
|
##### If device is a plain file, it means we're using some loopback
|
||||||
##### device. Use -F switch in mke2fs so it won't complain.
|
##### device. Use -F switch in mke2fs so it won't complain.
|
||||||
|
## Options here can be changed.
|
||||||
sys("mke2fs -F -m 0 -b 1024 $::device $::fs_size");
|
sys("mke2fs -F -m 0 -b 1024 $::device $::fs_size");
|
||||||
} else {
|
} else {
|
||||||
sys("mke2fs -m 0 -b 1024 $::device $::fs_size");
|
sys("mke2fs -m 0 -b 1024 $::device $::fs_size");
|
||||||
@ -803,6 +813,7 @@ sub cf_warn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Modified for user chosen defaults
|
||||||
# Copy a file, possibly stripping it. Stripping is done if the file
|
# Copy a file, possibly stripping it. Stripping is done if the file
|
||||||
# is strippable and stripping is desired by the user, and if the
|
# is strippable and stripping is desired by the user, and if the
|
||||||
# objcopy program exists.
|
# objcopy program exists.
|
||||||
@ -1351,10 +1362,10 @@ my($login_binary) = "$::mount_point/bin/login";
|
|||||||
|
|
||||||
STDOUT->autoflush(1);
|
STDOUT->autoflush(1);
|
||||||
|
|
||||||
start_logging_output();
|
# Won't have to do this.
|
||||||
|
##@ start_logging_output();
|
||||||
#info(0, "check_root_fs @yard_version@\n");
|
#info(0, "check_root_fs @yard_version@\n");
|
||||||
|
##@mount_device_if_necessary();
|
||||||
mount_device_if_necessary();
|
|
||||||
|
|
||||||
# This goes first so we define %Termcap for use in children
|
# This goes first so we define %Termcap for use in children
|
||||||
check_termcap();
|
check_termcap();
|
||||||
@ -1909,3 +1920,8 @@ sub check_termcap {
|
|||||||
|
|
||||||
##### END OF CHECK_ROOT_FS
|
##### END OF CHECK_ROOT_FS
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user