- minor package fixes
[opensuse:installation-images.git] / bin / mk_rescue
1 #! /usr/bin/perl -w
2
3 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4 # the usual fuss...
5
6 BEGIN { unshift @INC, ( $0 =~ /(.*?)((?<![^\/])bin\/)?[^\/]+$/ )[0] . "lib" }
7 use ReadConfig;
8 use MakeExt2Image;
9 use AddFiles;
10 use Conv2Image;
11 use CompressImage;
12
13 die "usage: $Script\n" if @ARGV;
14
15
16 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
17 # some config data
18
19 $srcdir = "${DataPath}rescue";
20 $tmpdir = "${BasePath}tmp/rescue";
21 $image = "${ImagePath}rescue";
22
23 # leave that much space
24 $extra_size = 2000;              # kbyte
25 $extra_inodes = 1000;
26
27 # just make them large enough
28 $start_size = 80000;             # kbyte
29 $start_inodes = 15000;
30
31 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
32 # now we really start...
33
34 $debug = exists($ENV{'debug'}) ? $ENV{'debug'} : "";
35 $use_cramfs = exists($ENV{'use_cramfs'}) ? $ENV{'use_cramfs'} : "";
36
37 # clean up
38 if(-d($tmpdir)) {
39   SUSystem "rm -rf $tmpdir" and die "$Script: failed to remove old $tmpdir";
40 }
41
42 AddFiles $tmpdir, "${srcdir}/rescue.file_list", $srcdir or
43   die "$Script: failed to setup rescue image";
44
45 # SUSystem "sh -c 'cd $tmpdir; ./makedevs >/dev/null'" and
46 #   die "$Script: could not create all devices";
47 # SUSystem "rm $tmpdir/makedevs";
48
49 # strip everything
50 SUSystem "fix_perms $tmpdir";
51 SUSystem "strip_dir $tmpdir";
52
53 SUSystem "ldconfig -r $tmpdir";
54 die "$Script: failed to run ldconfig" unless -f "$tmpdir/etc/ld.so.cache";
55
56 if($debug =~ /\bignore\b/ || $debug =~ /\bignorelibs\b/) {
57   system "check_libs $tmpdir" and
58     warn "$Script: error in shared lib config, please fix\n";
59 }
60 else {
61   system "check_libs $tmpdir" and
62     die "$Script: error in shared lib config, please fix\n";
63 }
64
65 if($use_cramfs) {
66   Conv2Image $image, $tmpdir, 'cramfs';
67   die "$Script: $!" unless rename $image, "$image.cramfs";
68   $i = -s "$image.cramfs";
69   print "$Script: created \"$image.cramfs\" ($i bytes)\n";
70
71 }
72
73 Conv2Image $image, $tmpdir, 'ext2', $start_size, $start_inodes, $extra_size, $extra_inodes;
74 $i = CompressImage $image;
75 print "$Script: compressed rescue to \"$image\" ($i bytes)\n";
76