build-gnome2
author laca
Tue, 17 Feb 2004 21:33:31 +0000
changeset 1741 b1f564a7fc6e
parent 1418 d6ff07e7887d
child 2369 f48652db5085
permissions -rwxr-xr-x
forward port a fix from mercury-se branch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     1
#!/usr/bin/perl
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     2
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     3
use strict;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     4
use warnings;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     5
use Getopt::Long qw(:config gnu_getopt no_auto_abbrev);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     6
use rpm_spec;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     7
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
     8
# --------- defaults -------------------------------------------------------
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     9
my $default_spec_dir = `dirname $0`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    10
$default_spec_dir =~ s/\s//g;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    11
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    12
my $default_log_dir = '/tmp';
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    13
my $default_tarball_dir = "/sgnome/pkgs/gnome-2.2/misc/tarballs";
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
    14
my $default_source_dirs = $default_spec_dir . "/ext-sources" .
1255
62113bcc823d add all man dirs
laca
parents: 1241
diff changeset
    15
			":" . $default_spec_dir . "/manpages/man1" .
62113bcc823d add all man dirs
laca
parents: 1241
diff changeset
    16
			":" . $default_spec_dir . "/manpages/man3" .
62113bcc823d add all man dirs
laca
parents: 1241
diff changeset
    17
			":" . $default_spec_dir . "/manpages/man4" .
62113bcc823d add all man dirs
laca
parents: 1241
diff changeset
    18
			":" . $default_spec_dir . "/manpages/man5";
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    19
my $default_patch_dir = $default_spec_dir . "/patches";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    20
my $default_sys_rpm_dir = "/usr/src/packages";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    21
my $default_nightly_date_format = '%y%m%d';
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    22
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    23
# --------- global vars ----------------------------------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    24
# config settings
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    25
my $the_spec_dir = $default_spec_dir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    26
my $the_log_dir = $default_log_dir;
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    27
my $the_summary_log;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    28
my $the_summary_title;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    29
my $the_logdir_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    30
my $the_rpm_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    31
my $the_srpm_url;
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
    32
my $the_source_dirs = $default_source_dirs;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
    33
my @the_source_dirlist;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    34
my $the_tarball_dir = $default_tarball_dir;
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
    35
my $the_good_build_dir;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
    36
my $the_good_rpms_copy_dir;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    37
my $the_patch_dir = $default_patch_dir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    38
my $the_sys_rpm_dir = $default_sys_rpm_dir;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    39
my $rpm_target;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    40
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    41
my $check_deps = 1;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    42
my $live_summary = 0;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    43
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    44
my $build_command;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    45
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    46
my $exit_val = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    47
my $verbose = 1;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    48
my $debug_level = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    49
my $full_path = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    50
my $halt_on_errors = 0;
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
    51
my $mail_errors_file;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
    52
my $mail_errors_to;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
    53
my $mail_errors_cc;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
    54
my $prodname = "unnamed";
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    55
my $is_nightly = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    56
my $the_nightly_date_format = $default_nightly_date_format;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    57
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    58
# counter used as an id for the spec files
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    59
my $spec_id = 0;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    60
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    61
# array of spec objects
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    62
my @specs_to_build = ();
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    63
my @build_status;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    64
my @status_details;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    65
my @remove_list = ();
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    66
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    67
my %provider;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    68
my %warned_about;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    69
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    70
# --------- utility functions ----------------------------------------------
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    71
our $opt_specdir = $default_spec_dir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    72
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    73
# return the name of the log file given the id of the spec file
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    74
sub get_log_name ($) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    75
    my $spec_id = shift;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    76
    my $spec = $specs_to_build[$spec_id];
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    77
    my $spec_file = $spec->get_param ('file_name');
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    78
    my $base_name = $spec_file;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    79
    $base_name =~ s/^.*\/([^\/]+)/$1/;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    80
    my $log_name = "$base_name";
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    81
    $log_name =~ s/(\.spec|)$/.log/;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    82
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    83
    return $log_name;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    84
}
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    85
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    86
my $current_log;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    87
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    88
sub open_log ($) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    89
    my $log_filename = shift;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    90
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    91
    if (not defined ($log_filename)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    92
	return;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    93
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
    94
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    95
    if (defined ($current_log)) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    96
	if ($current_log ne $log_filename) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    97
	    close LOG_FILE;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    98
	}
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    99
    }
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   100
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   101
    $current_log = undef;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   102
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   103
    if (! open LOG_FILE, ">>$log_filename") {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   104
	msg_warning (0, "Failed to open log file $log_filename");
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   105
	return;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   106
    }
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   107
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   108
    $current_log = $log_filename;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   109
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   110
    msg_log ("--- log starts --- " . `date`);
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   111
}
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   112
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   113
sub close_log () {
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   114
    msg_log ("--- log ends --- " . `date`);
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   115
    close LOG_FILE;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   116
    $current_log = undef;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   117
}
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   118
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   119
sub print_message ($$) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   120
    my $min_verbose = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   121
    my $message = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   122
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   123
    chomp $message;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   124
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   125
    if ($verbose > $min_verbose) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   126
	print "$message\n";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   127
    }
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   128
    if (defined ($current_log)) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   129
	print LOG_FILE "$message\n";
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   130
    }
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   131
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   132
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   133
sub msg_error ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   134
    my $message = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   135
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   136
    print_message (0, "ERROR: $message");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   137
    if ($halt_on_errors > 0) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   138
	print "ERROR: Exiting...\n";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   139
	exit (255);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   140
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   141
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   142
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   143
sub msg_warning ($$) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   144
    my $min_verbose = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   145
    my $message = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   146
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   147
    print_message ($min_verbose, "WARNING: $message");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   148
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   149
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   150
sub msg_info ($$) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   151
    my $min_verbose = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   152
    my $message = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   153
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   154
    print_message ($min_verbose, "INFO: $message");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   155
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   156
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   157
sub msg_debug ($$) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   158
    my $min_debug = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   159
    my $message = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   160
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   161
    if ($debug_level > $min_debug) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   162
	print "DEBUG: $message\n";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   163
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   164
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   165
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   166
sub msg_log ($) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   167
    my $message = shift;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   168
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   169
    if (defined ($current_log)) {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   170
	print LOG_FILE "$message\n";
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   171
    }
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   172
}
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   173
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   174
sub find_file ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   175
    my $glob = shift;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   176
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   177
    my @files = `find $glob 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   178
    if ($? == 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   179
	my $file = $files[$#files];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   180
	chomp $file;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   181
	return ($file);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   182
    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   183
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   184
    return (undef);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   185
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   186
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   187
sub mail_log ($) {
1059
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   188
    my $spec_id = shift;
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   189
    my $address;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   190
    my $cc;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   191
    my $log_name = get_log_name ($spec_id);
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   192
    my $spec_name = $specs_to_build[$spec_id]->{name};
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   193
    my $base_name = $log_name;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   194
    $log_name =~ s/\.log$//;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   195
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   196
    if (defined ($mail_errors_file)) {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   197
	$address = get_address_from_file ($mail_errors_file, $base_name);
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   198
	if (not defined ($address)) {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   199
	    $address = $mail_errors_to;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   200
	} else {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   201
	    $cc = $mail_errors_cc;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   202
	}
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   203
    }
1059
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   204
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   205
    my $log_file = get_log_name ($spec_id);
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   206
    msg_info (1, "mailing the build log to $address");
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   207
    if (not defined ($address)) {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   208
	return;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   209
    }
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   210
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   211
    my $subject;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   212
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   213
    if (defined ($prodname)) {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   214
	$subject = "BUILD FAILED ($prodname): $spec_name";
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   215
    } else {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   216
	$subject = "BUILD FAILED: $spec_name";	
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   217
    }
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   218
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   219
    if (defined ($cc)) {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   220
	`cat $the_log_dir/$log_file | mailx -s "$subject" -c "$cc" $address`;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   221
    } else {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   222
	`cat $the_log_dir/$log_file | mailx -s "$subject" $address`;
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   223
    }
1059
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   224
}
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   225
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   226
sub get_address_from_file ($$) {
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   227
    my $fname = shift;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   228
    my $pkg = shift;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   229
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   230
    $pkg =~ s/\.spec$//;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   231
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   232
    if (! open ADDR_FILE, "<$fname") {
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   233
        msg_warning (0, "Could not open file $fname");
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   234
	return undef;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   235
    }
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   236
    my @lines = <ADDR_FILE>;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   237
    my @addresses = grep /^$pkg:/, @lines;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   238
    my $address = $addresses[0];
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   239
    if (not defined ($address)) {
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   240
	return undef;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   241
    }
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   242
    $address =~ s/^$pkg://;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   243
    $address =~ s/\s//g;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   244
    close ADDR_FILE;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   245
    return $address;
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   246
}
8415b42f1053 added support for mailing the maintainer if the build breaks
laca
parents: 1058
diff changeset
   247
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   248
# --------- functions to process the command line args ---------------------
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   249
sub add_spec ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   250
    my $spec_name = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   251
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   252
    my $spec;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   253
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   254
    if (-f $spec_name) {
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   255
	$spec = rpm_spec->new ($spec_name, $rpm_target);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   256
    } else {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   257
	if (not $spec_name =~ /\.spec$/) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   258
	    $spec_name = "${opt_specdir}/${spec_name}.spec";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   259
	}
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   260
	$spec = rpm_spec->new ("$spec_name", $rpm_target);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   261
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   262
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   263
    if (not defined ($spec)) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   264
	msg_error ("$spec_name not found\n");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   265
    } else {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   266
	my $this_spec_id = $spec_id ++;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   267
	$specs_to_build[$this_spec_id] = $spec;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   268
	my @packages = $spec->get_param_array ('packages');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   269
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   270
	$build_status[$this_spec_id] = 'NOT_BUILT';
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   271
	$status_details[$this_spec_id] = '';
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   272
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   273
	foreach my $pkg (@packages) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   274
	    my @provides = $spec->get_pkg_param_array ($pkg, 'provides');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   275
	    foreach my $prov (@provides) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   276
		if (not defined $prov) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   277
		    next;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   278
		}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   279
		$prov =~ s/ .*//;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   280
		$provider{$prov} = $this_spec_id;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   281
	    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   282
	}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   283
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   284
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   285
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   286
sub set_quiet {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   287
    $verbose = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   288
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   289
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   290
sub process_args {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   291
    my $arg = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   292
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   293
    if (not defined ($build_command)) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   294
	if (($arg ne "build") and ($arg ne "build-order") and
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   295
	    ($arg ne "uninstall-pkgs") and
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   296
	    ($arg ne "install-order")) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   297
	    msg_error ("unknown command: $arg");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   298
	    usage (1);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   299
	}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   300
	$build_command = $arg;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   301
    } else {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   302
	add_spec ($arg);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   303
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   304
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   305
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   306
sub process_options {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   307
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   308
  Getopt::Long::Configure ("bundling");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   309
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   310
    our $opt_logdir = $default_log_dir;
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   311
    our $opt_sourcedirs = $default_source_dirs;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   312
    our $opt_tarballdir = $default_tarball_dir;
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   313
    our $opt_good_build_dir;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   314
    our $opt_good_rpms_copy_dir;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   315
    our $opt_patchdir = $default_patch_dir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   316
    our $opt_rpmdir = $default_sys_rpm_dir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   317
    our $opt_deps = 1;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   318
    our $opt_live_summary = 0;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   319
    our $opt_nightly = 0;
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   320
    our $opt_summary_log;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   321
    our $opt_summary_title;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   322
    our $opt_logdir_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   323
    our $opt_rpm_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   324
    our $opt_srpm_url;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   325
    our $opt_date = $default_nightly_date_format;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   326
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   327
    GetOptions ('v|verbose+' => \$verbose,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   328
		'debug=n' => \$debug_level,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   329
		'q|quiet' => \&set_quiet,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   330
		'specdir|spec|S=s',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   331
		'halt-on-errors!', \$halt_on_errors,
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   332
		'mail-errors-to=s' => \$mail_errors_to,
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   333
		'mail-errors-cc=s' => \$mail_errors_cc,
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   334
		'mail-errors-file=s' => \$mail_errors_file,
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
   335
		'prodname=s' => \$prodname,
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   336
		'sourcedirs|sourcedir|src|srcdirs|srcdir|sources|source|s=s',
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   337
		'logdir|log|l=s',
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   338
		'summary-log=s',
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   339
		'live-summary|live!',
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   340
		'summary-title=s',
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   341
		'logdir-url=s',
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   342
		'rpm-url=s',
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   343
		'srpm-url=s',
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   344
		'target=s' => \$rpm_target,
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   345
		'deps!',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   346
		'tarballdir|tar|tarball|tardir|t=s',
787
3714008768f6 *** empty log message ***
laca
parents: 786
diff changeset
   347
		'good-build-dir=s',
3714008768f6 *** empty log message ***
laca
parents: 786
diff changeset
   348
		'good-rpms-copy-dir=s',
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   349
		'nightly!',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   350
		'date|date-format|nightly-date-format=s',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   351
		'patchdir|patch|p=s',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   352
		'rpmdir|rpm|r=s',
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   353
		'full-path' => \$full_path,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   354
		'help' => \&usage,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   355
		'<>' => \&process_args);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   356
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   357
    $the_spec_dir = $opt_specdir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   358
    $the_log_dir = $opt_logdir;
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   359
    $the_summary_log = $opt_summary_log;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   360
    $the_summary_title = $opt_summary_title;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   361
    $the_logdir_url = $opt_logdir_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   362
    $the_rpm_url = $opt_rpm_url;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   363
    $the_srpm_url = $opt_srpm_url;
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   364
    $the_source_dirs = $opt_sourcedirs;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   365
    $the_tarball_dir = $opt_tarballdir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   366
    $the_patch_dir = $opt_patchdir;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   367
    $the_sys_rpm_dir = $opt_rpmdir;
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   368
    $the_good_build_dir = $opt_good_build_dir;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   369
    $the_good_rpms_copy_dir = $opt_good_rpms_copy_dir;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   370
    $check_deps = $opt_deps;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   371
    $live_summary = $opt_live_summary;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   372
    $is_nightly = $opt_nightly;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   373
    $the_nightly_date_format = $opt_date;
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   374
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   375
    @the_source_dirlist = split /:/, $the_source_dirs;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   376
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   377
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   378
sub usage (;$) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   379
    my $retval = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   380
    if (not defined ($retval)) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   381
	$retval = 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   382
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   383
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   384
    print << "EOF";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   385
build-gnome2 [options] [command] specs...
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   386
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   387
Options:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   388
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   389
    -v|--verbose:    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   390
                  Increase verbosity: the more -v's the more diag messages
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   391
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   392
    -q|--quiet:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   393
                  Silent operation.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   394
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   395
    --specdir=dir, --spec=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   396
                  Use dir as the default directory for spec files.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   397
                  Default: $default_spec_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   398
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   399
    --tarballdir=dir, --tardir=dir, --tar=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   400
                  Search for source tarballs in dir.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   401
                  Default: $default_tarball_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   402
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   403
    --sourcedir=dir, --srcdir=dir, --src=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   404
                  Location of the additional sources referenced in the spec
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   405
                  files. Default: $default_spec_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   406
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   407
    --patchdir=dir, --patch=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   408
                  Look for the patches referenced in the spec files in dir.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   409
                  Default: $default_patch_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   410
 
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   411
    --rpmdir=dir --rpm=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   412
                  Use dir as the rpm base directory (where the SPECS,
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   413
                  SOURCES, RPMS, SRPMS, BUILD directories are found).
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   414
                  Default: $default_sys_rpm_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   415
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   416
    --logdir=dir, --log=dir:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   417
                  Write build logs to dir. Default: $default_log_dir
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   418
                  
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   419
    --nodeps, --deps:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   420
                  Ignore/verify dependencies before building a component.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   421
                  Default: --deps
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   422
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   423
    --target=arch
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   424
		  If used, the same option will be passed to rpm when
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   425
		  building the package(s)
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   426
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   427
    --halt-on-errors:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   428
                  Halt on the first build error, do not attempt to continue.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   429
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   430
    --full-path:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   431
                  Print the full path to the rpm when running install-order.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   432
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   433
    --nightly, --nonightly:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   434
                  Suffix/Don't suffix the rpm Release with the current date.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   435
                  Default: --nonightly;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   436
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   437
    --date-format=format, --date=format:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   438
                  Use "date +format" to generate the date suffix for
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   439
                  the nightly builds. Default: $default_nightly_date_format
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   440
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   441
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   442
Commands:
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   443
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   444
    build          Build the specs specified on the command line
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   445
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   446
    build-order    Print the build order of the specs specified on the
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   447
	           command line.
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   448
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   449
    install-order  Print the rpms in the order they should be installed
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   450
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   451
    uninstall-pkgs Remove all rpms defined in the spec files specified
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   452
		   on the command line. (runs rpm --erase --nodeps)
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   453
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   454
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   455
specs...
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   456
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   457
    List of spec files to build. Either full path names or names of spec
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   458
    files in the default spec directory (with or without the .spec suffix).
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   459
EOF
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   460
    exit $retval;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   461
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   462
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   463
# --------- print reports --------------------------------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   464
# plain text report on stdout and
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   465
# html report if summary log file name
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   466
# was specified on the command line
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   467
sub print_status {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   468
    print_status_text ();
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   469
    print_status_html ();
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   470
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   471
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   472
sub print_live_status {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   473
    if ($live_summary) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   474
	print_status_html ();
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   475
    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   476
}
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   477
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   478
sub print_status_text {
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   479
    my $spec_name;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   480
    print "\nSummary:\n\n";
531
3b6df7968fe8 summary formatting fix
laca
parents: 482
diff changeset
   481
    printf "%20s | %10s | %s\n", "package", "status", "details";
3b6df7968fe8 summary formatting fix
laca
parents: 482
diff changeset
   482
    print "---------------------+------------+------------------------------------------\n";
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   483
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   484
	$spec_name=$specs_to_build[$i]->{name};
531
3b6df7968fe8 summary formatting fix
laca
parents: 482
diff changeset
   485
	printf "%20s | %10s | %s\n", $spec_name, $build_status[$i], 
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   486
		$status_details[$i];
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   487
    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   488
}
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   489
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   490
sub print_status_html {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   491
    my $spec_name;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   492
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   493
    if (not defined ($the_summary_log)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   494
	return;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   495
    }
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   496
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   497
    if (! open SUM_LOG, ">$the_summary_log") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   498
	msg_warning (0, "Failed to open file $the_summary_log for writing");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   499
	return;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   500
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   501
	
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   502
    print SUM_LOG "<HTML>\n<HEAD>\n<TITLE>Build report</TITLE>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   503
    print SUM_LOG "</HEAD>\n<BODY BGCOLOR=#FFFFFF>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   504
    if (defined ($the_summary_title)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   505
	print SUM_LOG "<P><H3>$the_summary_title</H3><P>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   506
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   507
    print SUM_LOG "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=5 WIDTH=90%>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   508
    print SUM_LOG " <TR>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   509
    print SUM_LOG "  <TD BGCOLOR=#666699><B>package</B></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   510
    print SUM_LOG "  <TD BGCOLOR=#666699><B>version</B></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   511
    print SUM_LOG "  <TD BGCOLOR=#666699><B>release</B></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   512
    print SUM_LOG "  <TD BGCOLOR=#666699><B>status</B></TD>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   513
    print SUM_LOG "  <TD BGCOLOR=#666699><B>details</B></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   514
    print SUM_LOG " </TR>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   515
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   516
	my $log_name = get_log_name ($i);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   517
	$spec_name=$specs_to_build[$i]->{name};
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   518
	my $version = $specs_to_build[$i]->{version};
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   519
	my $release = $specs_to_build[$i]->{release};
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   520
	print SUM_LOG " <TR>\n";
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   521
	if (defined ($the_srpm_url)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   522
	    if (($build_status[$i] eq "PASSED") and defined ($the_srpm_url)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   523
		print SUM_LOG "  <TD><A HREF=\"$the_srpm_url/$spec_name-$version-$release.src.rpm\">$spec_name</A></TD>\n";
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   524
	    } else {
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   525
		print SUM_LOG "  <TD>$spec_name</TD>\n";
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   526
	    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   527
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   528
	    print SUM_LOG "  <TD>$spec_name</TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   529
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   530
	print SUM_LOG "  <TD>", $version, "</TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   531
	print SUM_LOG "  <TD>", $release, "</TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   532
	my $color_start = "";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   533
	my $color_end = "";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   534
	if ($build_status[$i] eq "PASSED") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   535
	    $color_start = "<FONT COLOR=#11AA11>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   536
	    $color_end = "</FONT>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   537
	} elsif ($build_status[$i] eq "BEING_BUILT") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   538
	    $color_start = "<FONT COLOR=#FFA500>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   539
	    $color_end = "</FONT>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   540
	} elsif ($build_status[$i] eq "DEP") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   541
	    $color_start = "<FONT COLOR=#FFA500>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   542
	    $color_end = "</FONT>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   543
	} elsif ($build_status[$i] eq "NOT_BUILT") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   544
	    $color_start = "";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   545
	    $color_end = "";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   546
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   547
	    $color_start = "<FONT COLOR=#CC1111>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   548
	    $color_end = "</FONT>";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   549
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   550
	if (defined ($the_logdir_url) and ($build_status[$i] ne "NOT_BUILT")) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   551
	    print SUM_LOG "  <TD><A HREF=\"$the_logdir_url/$log_name\">",
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   552
	    $color_start, $build_status[$i], $color_end,
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   553
	    "</A></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   554
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   555
	    print SUM_LOG "  <TD>", 
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   556
	    $color_start, $build_status[$i], $color_end,
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   557
	    "</A></TD>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   558
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   559
	if ($build_status[$i] eq "PASSED") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   560
	    if (defined ($the_rpm_url)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   561
		print SUM_LOG "  <TD>RPMS: \n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   562
		my @rpms = $specs_to_build[$i]-> get_param_array ('rpms');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   563
		my $ctr = 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   564
		for my $rpm (@rpms) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   565
		    print SUM_LOG "    <A HREF=\"$the_rpm_url/$rpm\">[$ctr]</a> \n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   566
		    $ctr++;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   567
		}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   568
		print SUM_LOG "  </TD>\n";
609
b705c778bcb2 build report fixes
laca
parents: 606
diff changeset
   569
	    } else {
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   570
		print SUM_LOG "  <TD>&nbsp;</TD>\n";
609
b705c778bcb2 build report fixes
laca
parents: 606
diff changeset
   571
	    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   572
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   573
	    print SUM_LOG "  <TD><PRE>", $status_details[$i], "</PRE></TD>\n";
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   574
	}
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   575
	print SUM_LOG " </TR>\n";
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   576
    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   577
    print SUM_LOG "</TABLE><P>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   578
    print SUM_LOG "<SMALL>", `date`, "</SMALL>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   579
    print SUM_LOG "</BODY>\n</HTML>\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   580
    close SUM_LOG;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   581
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   582
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   583
# --------- rpm utility functions ------------------------------------------
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   584
sub is_provided ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   585
    my $capability = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   586
610
ef8e419e17f3 *** empty log message ***
laca
parents: 609
diff changeset
   587
    $capability =~ s/\s.*//;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   588
    `sh -c "rpm -q --whatprovides $capability" >/dev/null 2>&1`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   589
    my $result = (! $?);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   590
    `sh -c "rpm -q $capability" >/dev/null 2>&1`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   591
    $result = ($result or (! $?));
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   592
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   593
    return ($result);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   594
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   595
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   596
sub what_provides ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   597
    my $capability = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   598
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   599
    $capability =~ s/ .*//;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   600
    my $rpm=`sh -c "rpm -q --whatprovides $capability" 2>&1`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   601
    if ($?) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   602
	$rpm=`sh -c "rpm -q $capability" 2>&1`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   603
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   604
    chomp $rpm;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   605
    return ($rpm);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   606
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   607
1741
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   608
sub spec_id_of ($) {
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   609
    my $name = shift;
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   610
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   611
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   612
	if ($specs_to_build[$i]->{name} eq $name) {
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   613
	    return $i;
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   614
	}
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   615
    }
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   616
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   617
    return undef;
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   618
}
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
   619
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   620
sub install_good_rpms ($) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   621
    my $spec_id = shift;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   622
    my $spec = $specs_to_build[$spec_id];
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   623
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   624
    my @rpms =  $spec->get_param_array ('rpms');
789
6c06955e700c *** empty log message ***
laca
parents: 788
diff changeset
   625
    map $_ =~ s/$spec->{version}-$spec->{release}.$spec->{buildarchitecture}.rpm/[0-9]*-[0-9]*.*.rpm/, @rpms;
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   626
    map $_ =~ s/^/$the_good_build_dir\//, @rpms;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   627
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   628
    for (my $i = 0; $i <= $#rpms; $i++) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   629
	my $current_rpm = $rpms[$i];
789
6c06955e700c *** empty log message ***
laca
parents: 788
diff changeset
   630
	msg_info (1, "Looking for last known good rpm as $current_rpm");
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   631
	$rpms[$i] = find_file ($current_rpm);
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   632
	if (not defined ($rpms[$i])) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   633
	    msg_error ("No file matches $current_rpm");
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   634
	    return 0;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   635
	} else {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   636
	    msg_info (1, "Found $rpms[$i]");
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   637
	}
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   638
    }
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   639
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   640
    my $command = "rpm --upgrade -v @rpms";
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   641
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   642
    if ($verbose > 0) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   643
	map msg_info (0, "Installing last known good rpm: $_\n"), @rpms;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   644
    }
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   645
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   646
    my $msg=`$command 2>&1`;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   647
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   648
    if ($? > 0) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   649
	msg_error "failed to install last known good rpm: $msg";
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   650
	$status_details[$spec_id] = $status_details[$spec_id] . 
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   651
	    "; Failed to install last known good rpm: " . $msg;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   652
	return 0;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   653
    }
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   654
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   655
    if (defined ($the_good_rpms_copy_dir)) {
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   656
	`mkdir -p $the_good_rpms_copy_dir`;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   657
	`cp @rpms $the_good_rpms_copy_dir`;
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   658
    }
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   659
790
507b4577d2c7 *** empty log message ***
laca
parents: 789
diff changeset
   660
    return 1;
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   661
}
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 785
diff changeset
   662
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   663
sub install_rpms ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   664
    my $spec_id = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   665
    my $spec = $specs_to_build[$spec_id];
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   666
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   667
    my @rpms =  $spec->get_param_array ('rpm_paths');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   668
    map $_ =~ s/^/$the_sys_rpm_dir\//, @rpms;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   669
    my $command = "rpm --upgrade -v @rpms";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   670
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   671
    if ($verbose > 0) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   672
	map msg_info (0, "Installing $_\n"), @rpms;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   673
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   674
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   675
    my $msg=`$command 2>&1`;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   676
    if ($? > 0) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   677
	msg_error "failed to install rpm: $msg";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   678
	$build_status[$spec_id] = 'FAILED';
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   679
	$status_details[$spec_id] = $msg;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   680
	return 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   681
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   682
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   683
    return 1;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   684
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   685
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   686
sub print_rpms ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   687
    my $spec_id = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   688
    my $spec = $specs_to_build[$spec_id];
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   689
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   690
    if ($full_path) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   691
	my @rpms =  $spec->get_param_array ('rpm_paths');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   692
	map print("$the_sys_rpm_dir\/$_\n"), @rpms;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   693
    } else {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   694
	my @rpms =  $spec->get_param_array ('rpms');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   695
	map print("$_\n"), @rpms;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   696
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   697
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   698
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   699
sub print_spec ($) {
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   700
    my $spec_id = shift;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   701
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   702
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   703
    print "$spec->{file_name}\n";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   704
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   705
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   706
sub push_to_remove_list ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   707
    my $spec_id = shift;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   708
    my $spec = $specs_to_build[$spec_id];
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   709
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   710
    my @rpms =  $spec->get_param_array ('packages');
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   711
    map unshift (@remove_list, $_), @rpms;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   712
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   713
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   714
# --------- dependency checking code ---------------------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   715
sub warn_always ($$$) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   716
    my $spec_name = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   717
    my $dep = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   718
    my $reason = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   719
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   720
    if ($reason eq "DEP_FAILED") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   721
	msg_warning (1, "$spec_name requires $dep");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   722
	msg_warning (1, "but that failed to build");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   723
	msg_warning (1, "Can't build $spec_name");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   724
    } elsif ($reason eq "NOT_FOUND") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   725
	msg_warning (0, "no spec file or installed package provides $dep");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   726
	msg_warning (0, "can't build $spec_name");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   727
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   728
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   729
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   730
sub warn_once ($$$) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   731
    my $spec_name = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   732
    my $dep = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   733
    my $reason = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   734
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   735
    if ($reason eq "DEP_FAILED") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   736
	# should not happen
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   737
	msg_error ("assertion failed: warn_once / DEP_FAILED");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   738
    } elsif ($reason eq "NOT_FOUND") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   739
	if (not defined ($warned_about{$dep})) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   740
	    msg_warning (1, "$dep is required but not found");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   741
	    $warned_about{$dep}=1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   742
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   743
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   744
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   745
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   746
sub get_dependencies ($@) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   747
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   748
    my @packages = @_;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   749
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   750
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   751
    my @dependencies = ();
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   752
    my @this_pkg_requires;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   753
    foreach my $pkg (@packages) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   754
	@this_pkg_requires = $spec->get_pkg_param_array ($pkg, 'requires');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   755
	msg_debug (3, "adding \"@this_pkg_requires\" to the dependencies of $spec->{name}");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   756
	push (@dependencies, @this_pkg_requires);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   757
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   758
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   759
    return @dependencies;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   760
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   761
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   762
sub check_dependency ($$&&@) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   763
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   764
    my $capability = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   765
    my $recursive_callback = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   766
    my $warning_callback = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   767
    my @rec_cb_opts = @_;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   768
    my $spec_name = $specs_to_build[$spec_id]->{name};
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   769
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   770
    my $result = 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   771
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   772
    if (not defined ($capability)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   773
	return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   774
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   775
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   776
    if ((defined ($provider{$capability})) and
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   777
	($provider{$capability} == $spec_id)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   778
	return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   779
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   780
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   781
    if (defined $provider{$capability}) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   782
	if ($build_status[$provider{$capability}] eq "PASSED") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   783
	    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   784
	} elsif ($build_status[$provider{$capability}] ne "NOT_BUILT") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   785
	    if (!is_provided ($capability)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   786
		&$warning_callback ($spec_name, $capability, "DEP_FAILED");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   787
		return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   788
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   789
	    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   790
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   791
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   792
	msg_info (1, "need to build $capability first");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   793
	my $save_log_name = $current_log;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   794
	my $result = &$recursive_callback ($provider{$capability}, @rec_cb_opts);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   795
	open_log ($save_log_name);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   796
	return $result;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   797
    } elsif (!is_provided ($capability)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   798
	&$warning_callback ($spec_name, $capability, "NOT_FOUND");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   799
	return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   800
    } else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   801
	return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   802
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   803
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   804
    # should not happen
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   805
    msg_error("Assertion failed: check_dependency: return 0");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   806
    return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   807
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   808
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   809
# --------- copy build spec files, tarballs, patches -----------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   810
sub copy_spec ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   811
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   812
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   813
    my $spec_file = $spec->get_param ('file_name');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   814
    my $base_name = $spec_file;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   815
    $base_name =~ s/^.*\/([^\/]+)/$1/;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   816
    my $target = "$the_sys_rpm_dir/SPECS/$base_name";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   817
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   818
    msg_info (1, "copying spec file $base_name to the SPECS dir");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   819
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   820
    if ($is_nightly) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   821
	my $the_nightly_date = `date "+$the_nightly_date_format"`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   822
	if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   823
	    msg_error ("incorrect date format: $the_nightly_date_format");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   824
	    $build_status[$spec_id] = 'ERROR';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   825
	    $status_details[$spec_id] = "incorrect nightly date format: $the_nightly_date";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   826
	    return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   827
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   828
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   829
	open SPEC_OUT, ">$target";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   830
	my $msg=`cp $spec_file /tmp/.gnome_build.tmp.$$ 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   831
	if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   832
	    msg_error ("failed to copy $spec_file");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   833
	    msg_error ("can't continue with $spec->{name}");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   834
	    $build_status[$spec_id] = 'FAILED';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   835
	    $status_details[$spec_id] = "cound not copy spec file: $msg";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   836
	    return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   837
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   838
	open SPEC_IN, "</tmp/.gnome_build.tmp.$$";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   839
	my $line;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   840
	while (1) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   841
	    $line = <SPEC_IN>;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   842
	    if (not defined ($line)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   843
		last;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   844
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   845
	    if ($line =~ /^Release\s*:/) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   846
		$line =~ s/\s*$/.$the_nightly_date/;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   847
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   848
	    print SPEC_OUT $line;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   849
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   850
	close SPEC_OUT;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   851
	close SPEC_IN;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   852
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   853
	`rm -f /tmp/.gnome_build.tmp.$$`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   854
	$specs_to_build[$spec_id] = rpm_spec->new ($target, $rpm_target);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   855
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   856
    } else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   857
	`cmp -s $spec_file $target`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   858
	if ($? != 0) {  # the files differ
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   859
	    my $msg=`cp $spec_file $target 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   860
	    if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   861
		msg_error "failed to copy $spec_file";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   862
		$build_status[$spec_id] = 'FAILED';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   863
		$status_details[$spec_id] = "failed to copy spec file: $msg";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   864
		return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   865
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   866
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   867
	    msg_info (3, "   $spec_file and");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   868
	    msg_info (3, "   $target");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   869
	    msg_info (3, "   are the same; not copying");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   870
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   871
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   872
    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   873
    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   874
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   875
1268
f94fb1ac56fd *** empty log message ***
laca
parents: 1255
diff changeset
   876
sub find_source ($$) {
f94fb1ac56fd *** empty log message ***
laca
parents: 1255
diff changeset
   877
    my $spec_id = shift;
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   878
    my $src = shift;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   879
    my $is_tarball = 0;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   880
    my $src_path;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   881
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   882
    if ($src =~ /\.(tar\.gz|tgz|tar\.bz2|tar\.bzip2)$/) {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   883
	$is_tarball = 1;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   884
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   885
	$src_path = "$the_tarball_dir/$src";
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   886
	if (! -f "$src_path") {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   887
	    msg_info (3, "   $src not found in $the_tarball_dir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   888
	} else {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   889
	    msg_info (3, "   found in $the_tarball_dir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   890
	    return $src_path;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   891
	}
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   892
    }
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   893
    foreach my $extsrcdir (@the_source_dirlist) {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   894
	$src_path = "$extsrcdir/$src";
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   895
	if (! -f "$src_path") {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   896
	    msg_info (3, "   $src not found in $extsrcdir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   897
	} else {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   898
	    msg_info (3, "   found in $extsrcdir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   899
	    return "$src_path";
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   900
	}
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   901
    }
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   902
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   903
    if (!$is_tarball) {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   904
	$src_path = "$the_tarball_dir/$src";
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   905
	if (! -f "$src_path") {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   906
	    msg_info (3, "   trying the tarball directory");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   907
	    msg_info (3, "   $src not found in $the_tarball_dir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   908
	} else {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   909
	    msg_info (3, "   found in $the_tarball_dir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   910
	    msg_warning (1, "$src is not expected to be in the tarball dir");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   911
	    return $src_path;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   912
	}
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   913
    }
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   914
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   915
    $build_status[$spec_id] = 'FAILED';
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   916
    $status_details[$spec_id] = "Source $src not found";
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   917
    msg_error ("Source file $src not found");
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   918
    return undef;
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   919
}
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   920
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   921
sub copy_sources ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   922
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   923
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   924
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   925
    my @sources = $spec->get_param_array ('sources');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   926
    my $src_path;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   927
    my $target;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   928
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   929
    msg_info (1, "copying sources to $the_sys_rpm_dir/SOURCES");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   930
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   931
    foreach my $src (@sources) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   932
	if (not defined ($src)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   933
	    next;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   934
	}
1268
f94fb1ac56fd *** empty log message ***
laca
parents: 1255
diff changeset
   935
        $src_path = find_source ($spec_id, $src);
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   936
	if (not defined ($src_path)) {
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   937
	    return 0;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   938
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   939
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
   940
	msg_info (2, "   copying $src");
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   941
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   942
	$target = "$the_sys_rpm_dir/SOURCES/$src";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   943
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   944
	`cmp -s $src_path $target`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   945
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   946
	if ($? != 0) {  # the files differ
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   947
	    my $msg=`cp $src_path $target 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   948
	    if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   949
		msg_error ("failed to copy $src_path");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   950
		$build_status[$spec_id] = 'ERROR';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   951
		$status_details[$spec_id] = $msg;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   952
		return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   953
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   954
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   955
    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   956
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   957
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   958
    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   959
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   960
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   961
sub copy_patches ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   962
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   963
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   964
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   965
    my @patches = $spec->get_param_array ('patches');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   966
    my $patch_path;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   967
    my $target;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   968
    foreach my $patch (@patches) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   969
	if (not defined ($patch)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   970
	    next;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   971
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   972
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   973
	msg_info (2, "copying patch $patch");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   974
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   975
	$patch_path = "$the_patch_dir/$patch";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   976
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   977
	if (! -f "$patch_path") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   978
	    $build_status[$spec_id] = 'ERROR';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   979
	    $status_details[$spec_id] = "Patch $patch_path not found";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   980
	    msg_error ("Patch $patch_path not found");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   981
	    return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   982
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   983
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   984
	$target = "$the_sys_rpm_dir/SOURCES/$patch";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   985
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   986
	`cmp -s $patch_path $target`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   987
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   988
	if ($? != 0) {  # the files differ
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   989
	    my $msg=`cp $patch_path $target 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   990
	    if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   991
		msg_error "failed to copy $patch_path";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   992
		$build_status[$spec_id] = 'ERROR';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   993
		$status_details[$spec_id] = $msg;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   994
		return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   995
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   996
	} else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   997
	    msg_info (3, "   $patch and");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   998
	    msg_info (3, "   $the_sys_rpm_dir/SOURCES/$patch");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
   999
	    msg_info (3, "   are the same; not copying");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1000
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1001
    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1002
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1003
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1004
    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1005
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1006
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1007
# --------- build command --------------------------------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1008
sub do_build () {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1009
    print_live_status;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1010
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1011
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1012
	if ($build_status[$i] eq "NOT_BUILT") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1013
	    if (! build_spec ($i)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1014
		if (defined ($the_good_build_dir)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1015
		    msg_info (0, "Attempting to use a known good rpm");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1016
		    install_good_rpms ($i);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1017
		}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1018
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1019
	    print_live_status;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1020
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1021
	if ($build_status[$i] ne "PASSED") {
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
  1022
	    if ($build_status[$i] ne "DEP_FAILED") {
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
  1023
		mail_log ($i);
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1287
diff changeset
  1024
	    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1025
	    $exit_val++;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1026
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1027
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1028
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1029
    if ($verbose > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1030
	print_status;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1031
    }
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1032
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1033
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1034
sub build_spec ($) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1035
    my $spec_id = shift;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1036
    my $spec = $specs_to_build[$spec_id];
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
  1037
    my $logname = $the_log_dir . "/" . get_log_name ($spec_id);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1038
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1039
    msg_debug (0, "Trying to build $spec->{name}");
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
  1040
    open_log ($logname);
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1041
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1042
    if ($build_status[$spec_id] ne "NOT_BUILT") {
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1043
	if ($build_status[$spec_id] eq "DEP") {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1044
	    $build_status[$spec_id]="ERROR";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1045
	    $status_details[$spec_id]="Circular dependency detected";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1046
	    msg_error ("Circular dependency detected " .
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1047
		"while trying to build $spec->{name}");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1048
	}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1049
	return 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1050
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1051
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1052
    my @packages = $spec->get_param_array ('packages');
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1053
    msg_debug (3, "packages: $spec->{file_name} defines: @packages");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1054
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1055
    foreach my $pkg (@packages) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1056
	if (not defined ($pkg)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1057
	    next;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1058
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1059
	msg_info (2, "Checking if $pkg is installed");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1060
	if (is_provided ($pkg) and $check_deps) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1061
	    my $provider = what_provides ($pkg);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1062
	    msg_warning (0, "$pkg is already provided by $provider");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1063
	    msg_warning (0, "not building $pkg");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1064
	    $build_status[$spec_id]='SKIPPED';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1065
	    $status_details[$spec_id]="$pkg already installed";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1066
	    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1067
	    return 0;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1068
	}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1069
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1070
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1071
    if ($check_deps) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1072
	my @dependencies = get_dependencies ($spec_id, @packages);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1073
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1074
	my $this_result;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1075
	my $result = 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1076
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1077
	$build_status[$spec_id] = "DEP";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1078
	$status_details[$spec_id] = "building dependencies first";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1079
	
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1080
	msg_info (1, "Checking dependencies of $spec->{name}");
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1081
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1082
	foreach my $dep (@dependencies) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1083
	    $dep =~ s/ .*//;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1084
	    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1085
	    $this_result = check_dependency ($spec_id, $dep,
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1086
					     \&build_spec, \&warn_always, ());
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1087
	    if (!$this_result) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1088
		if (defined ($the_good_build_dir)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1089
		    msg_info (0, "Attempting to use a known good rpm");
1741
b1f564a7fc6e forward port a fix from mercury-se branch
laca
parents: 1418
diff changeset
  1090
		    $this_result = install_good_rpms (spec_id_of ($dep));
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1091
		}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1092
		if (! $this_result) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1093
		    msg_warning (1, "$spec->{name} requires $dep");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1094
		}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1095
	    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1096
	    $result = ($this_result and $result);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1097
	}
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1098
	
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1099
	if (! $result) {
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1100
	    $build_status[$spec_id]="DEP_FAILED";
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1101
	    $status_details[$spec_id]="Dependency check failed";
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1102
		
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1103
	    msg_warning (0, "Dependency check for $spec->{name} failed");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1104
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1105
	    return 0;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1106
	}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1107
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1108
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1109
    copy_spec ($spec_id) || return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1110
    copy_sources ($spec_id) || return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1111
    copy_patches ($spec_id) || return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1112
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1113
    if ($live_summary) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1114
	$build_status[$spec_id] = 'BEING_BUILT';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1115
	$status_details[$spec_id] = 'rpm -ba running';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1116
	print_live_status;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1117
    }
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1118
    run_rpm_ba ($spec_id) || return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1119
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1120
    install_rpms ($spec_id) || return 0;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1121
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1122
    $build_status[$spec_id] = "PASSED";
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1123
    $status_details[$spec_id] = "";
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
  1124
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
  1125
    close_log;
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
  1126
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1127
    return 1;
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1128
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1129
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1130
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1131
sub run_rpm_ba ($) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1132
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1133
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1134
    my $spec_file = $spec->get_param ('file_name');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1135
    my $base_name = $spec_file;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1136
    $base_name =~ s/^.*\/([^\/]+)/$1/;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1137
    my $log_name = "$base_name";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1138
    $log_name = get_log_name ($spec_id);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1139
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1140
    msg_info (0, "Running rpm build of $spec->{name} ($base_name)");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1141
    msg_info (1, "Log file: $the_log_dir/$log_name");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1142
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1143
    my $save_log_name = $current_log;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1144
    msg_log ("INFO: Starting rpm -ba at " . `date`);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1145
    close_log;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1146
    my $tempfile = "/tmp/rpm.out.$$";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1147
    if (defined($rpm_target)) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1148
        system ("rpm --target $rpm_target -ba $the_sys_rpm_dir/SPECS/$base_name > $tempfile 2>&1");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1149
    } else {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1150
        system ("rpm -ba $the_sys_rpm_dir/SPECS/$base_name > $tempfile 2>&1");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1151
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1152
    my $rpm_result = $?;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1153
    system ("sed -e 's/^/RPM: /' $tempfile >> $the_log_dir/$log_name 2>&1; rm -f $tempfile");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1154
    open_log ($save_log_name);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1155
    msg_log ("INFO: rpm -ba finished at " . `date`);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1156
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1157
    if ($rpm_result) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1158
	msg_error ("Build of $spec->{name} FAILED");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1159
	$build_status[$spec_id] = "FAILED";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1160
	$status_details[$spec_id] = 'RPM build failed';
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1161
	return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1162
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1163
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1164
    msg_info (0, "$spec->{name} PASSED");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1165
    return 1;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1166
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1167
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1168
# --------- build-order and install-order commands -------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1169
sub do_build_order () {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1170
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1171
	print_order ($i, \&print_spec);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1172
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1173
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1174
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1175
sub do_install_order () {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1176
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1177
	print_order ($i, \&print_rpms);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1178
    }
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1179
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1180
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1181
sub print_order ($&) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1182
    my $spec_id = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1183
    my $print_command = shift;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1184
    my $spec = $specs_to_build[$spec_id];
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1185
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1186
    if ($build_status[$spec_id] ne "NOT_BUILT") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1187
	if ($build_status[$spec_id] eq "DEP") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1188
	    $build_status[$spec_id]="ERROR";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1189
	    $status_details[$spec_id]="Circular dependency detected";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1190
	    msg_error ("Circular dependency detected " .
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1191
		"while checking dependencies of $spec->{name}");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1192
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1193
	return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1194
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1195
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1196
    if ($check_deps) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1197
	my @packages = $spec->get_param_array ('packages');
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1198
	my @dependencies = get_dependencies ($spec_id, @packages);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1199
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1200
	$build_status[$spec_id] = "DEP";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1201
	
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1202
	msg_info (1, "Checking dependencies of $spec->{name}");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1203
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1204
	foreach my $dep (@dependencies) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1205
	    $dep =~ s/ .*//;	
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1206
    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1207
	    check_dependency ($spec_id, $dep, \&print_order, \&warn_once, ($print_command));	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1208
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1209
    
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1210
    copy_spec ($spec_id) || return 0;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1211
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1212
    $build_status[$spec_id] = "PASSED";
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1213
    &$print_command ($spec_id);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1214
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1215
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1216
# --------- uninstall-pkgs command -----------------------------------------
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1217
sub do_uninstall_pkgs () {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1218
    for (my $i = 0; $i <= $#specs_to_build; $i++) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1219
	print_order ($i, \&push_to_remove_list);
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1220
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1221
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1222
    foreach my $pkg_to_remove (@remove_list) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1223
	msg_info (0, "Removing $pkg_to_remove");
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1224
	my $cmd_out = `rpm -v --erase --nodeps $pkg_to_remove 2>&1`;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1225
	if ($? > 0) {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1226
	    $exit_val++;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1227
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1228
	$cmd_out =~ s/^/INFO: rpm: /;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1229
	if ($verbose > 0) {
1241
2610ab6fd775 implement searchin multiple ext source directories for the source files
laca
parents: 1059
diff changeset
  1230
	    print $cmd_out . "\n";
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1231
	}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1232
    }
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1233
}
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1234
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1235
# --------- main program ---------------------------------------------------
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1236
sub main {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1237
    process_options;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1238
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1239
    if (not defined ($build_command)) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1240
	usage (1);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1241
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1242
    
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1243
    if (not defined ($specs_to_build[0])) {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1244
	msg_info (0, "Nothing to do.");
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1245
	exit (0);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1246
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1247
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1248
    if ($build_command eq "build") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1249
	do_build;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1250
    } elsif ($build_command eq "uninstall-pkgs") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1251
	do_uninstall_pkgs;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1252
    } elsif ($build_command eq "build-order") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1253
	do_build_order;
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1254
    } elsif ($build_command eq "install-order") {
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 790
diff changeset
  1255
	do_install_order;
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1256
    }
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1257
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1258
    exit ($exit_val);
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1259
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1260
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
  1261
main;