my $builddir = '/tmp/' . $user;
my $tmpdir = '/tmp/' . $user;
my $TOPDIR = $builddir . "/topdir";
+my $prebuild = "./pre-build";
+my $skip_prebuild = 0;
+my $postbuild = "./post-build";
+my $skip_postbuild = 0;
my $destdir;
my $version;
my $release;
print "\nUsage: $0 --version <version> [-r|--release]|[--daily] [-d|--distribution <distribution name>] [-v|--verbose]\n";
print "\t\t[-b|--builddir <build directory>]\n";
print "\t\t[-p|--packagesdir <packages directory>]\n";
+ print "\t\t[--pre-build <pre-build script>]\n";
+ print "\t\t[--skip-prebuild]\n";
+ print "\t\t[--post-build <post-build script>]\n";
+ print "\t\t[--skip-postbuild]\n";
print "\n";
exit 0;
}
}
if (not -f "$name.spec" and -f "configure") {
- ex "./configure";
+ ex "./configure --disable-check-modules --disable-libcheck";
}
}
if (not $packages{$name}{'version'}) {
- $packages{$name}{'version'} = `grep "^Version:" $name.spec | cut -d ' ' -f 2`;
+ $packages{$name}{'version'} = `grep "^Version:" $name.spec | awk '{print \$NF}'`;
chomp $packages{$name}{'version'};
}
if (not $packages{$name}{'release'}) {
$verbose = 1;
} elsif ($cmd_flag eq "-b" or $cmd_flag eq "--builddir") {
$builddir = shift(@ARGV);
+ } elsif ($cmd_flag eq "--pre-build") {
+ $prebuild = shift(@ARGV);
+ } elsif ($cmd_flag eq "--post-build") {
+ $postbuild = shift(@ARGV);
+ } elsif ($cmd_flag eq "--skip-prebuild") {
+ $skip_prebuild = 1;
+ } elsif ($cmd_flag eq "--skip-postbuild") {
+ $skip_postbuild = 1;
} else {
&usage();
exit 1;
}
if ($build_release) {
- $release = $distribution . $version;
+ $release = $distribution .
+ '.' . (split '-',$version)[0] .
+ '.' . (split '-',$version)[1];
} elsif ($build_daily) {
$version .= '-' . $starttime;
} else {
$log = "$CWD/$distribution.build.log";
rmtree $log;
-open (LOG, "+> $log") or die "Can't open $log: $!\n";
+open (LOG, ">$log") or die "Can't open $log: $!\n";
chdir $CWD;
-if (-f "./pre-build") {
+if (not $skip_prebuild and -f "$prebuild") {
print_and_log "Running pre-build script";
- ex "./pre-build";
+ ex "$prebuild";
}
# Create Distribution directory structure
print_green "$destdir.tgz is ready";
chdir $CWD;
-if (-f "./post-build") {
+if (not $skip_postbuild and -f $postbuild) {
print_and_log "Running post-build script";
- ex "./post-build $destdir.tgz $distribution $version";
+ ex "$postbuild $destdir.tgz $distribution $version";
}
print_and_log "Build finished at ". localtime(time);